From 1b4e33e50d23b911c167e53af3165a7a791ca73d Mon Sep 17 00:00:00 2001 From: maniram21 <57519347+maniram21@users.noreply.github.com> Date: Tue, 22 Dec 2020 15:45:33 +0530 Subject: [PATCH 1/5] Update PivotController.cs --- .../Controllers/PivotController.cs | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/PivotController/PivotController/Controllers/PivotController.cs b/PivotController/PivotController/Controllers/PivotController.cs index a20cc21..b213d69 100644 --- a/PivotController/PivotController/Controllers/PivotController.cs +++ b/PivotController/PivotController/Controllers/PivotController.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; @@ -23,6 +23,7 @@ public PivotController(IMemoryCache cache, IWebHostEnvironment environment) _hostingEnvironment = environment; } + // POST api/ [Route("/api/pivot/post")] [HttpPost] public async Task Post([FromBody]object args) @@ -62,17 +63,16 @@ public async Task GetData(FetchData param) { cacheEntry.SetSize(1); cacheEntry.AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(60); - - // Here, you can refer different kinds of data sources. We've bound a collection in this illustration. + // Here you need to return raw data return new DataSource.PivotViewData().GetVirtualData(); - - // EXAMPLE: - // Other data sources, such as DataTable, CSV, JSON, etc., can be bound as shown below. - // return new DataSource.BusinessObjectsDataView().GetDataTable(); - // return new DataSource.PivotJSONData().ReadJSONData(_hostingEnvironment.ContentRootPath + "\\DataSource\\sales-analysis.json"); - // return new DataSource.PivotCSVData().ReadCSVData(_hostingEnvironment.ContentRootPath + "\\DataSource\\sales.csv"); - // return new DataSource.PivotJSONData().ReadJSONData("http://cdn.syncfusion.com/data/sales-analysis.json"); - // return new DataSource.PivotCSVData().ReadCSVData("http://cdn.syncfusion.com/data/sales-analysis.csv"); + //return new DataSource.PivotDynamicData().GetDynamicData(); + //return new DataSource.PivotExpandoData().GetExpandoData(); + //return new DataSource.GroupData().GetGroupData(); + //return new DataSource.BusinessObjectsDataView().GetDataTable(); + //return new DataSource.PivotJSONData().ReadJSONData(_hostingEnvironment.ContentRootPath + "\\DataSource\\sales-analysis.json"); + //return new DataSource.PivotCSVData().ReadCSVData(_hostingEnvironment.ContentRootPath + "\\DataSource\\sales.csv"); + //return new DataSource.PivotJSONData().ReadJSONData("http://cdn.syncfusion.com/data/sales-analysis.json"); + //return new DataSource.PivotCSVData().ReadCSVData("http://cdn.syncfusion.com/data/sales-analysis.csv"); }); } From 22acec144509f3faa369ccc2d796d2eb61a3fc3c Mon Sep 17 00:00:00 2001 From: maniram21 <57519347+maniram21@users.noreply.github.com> Date: Tue, 22 Dec 2020 15:47:00 +0530 Subject: [PATCH 2/5] Update DataSource.cs --- .../PivotController/DataSource/DataSource.cs | 1093 ++++++++++++++++- 1 file changed, 1088 insertions(+), 5 deletions(-) diff --git a/PivotController/PivotController/DataSource/DataSource.cs b/PivotController/PivotController/DataSource/DataSource.cs index 7471159..730adfe 100644 --- a/PivotController/PivotController/DataSource/DataSource.cs +++ b/PivotController/PivotController/DataSource/DataSource.cs @@ -1,8 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; +using System.Dynamic; using System.IO; +using System.Linq; using System.Net; namespace PivotController.Controllers @@ -10,6 +12,1026 @@ namespace PivotController.Controllers public class DataSource { + public class GroupData + { + public int Id { get; set; } + public string TimeLine { get; set; } + public string Sector { get; set; } + public string EnerType { get; set; } + public string EneSource { get; set; } + public int PowUnits { get; set; } + public int ProCost { get; set; } + public string Year { get; set; } + public string Quarter { get; set; } + public string HalfYear { get; set; } + public List GetGroupData() + { + List groupData = new List(); + groupData.Add(new GroupData + { + Id = 1001, + TimeLine = "1/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 46, + ProCost = 43 + }); + groupData.Add(new GroupData + { + Id = 1002, + TimeLine = "2/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 30, + ProCost = 29 + }); + groupData.Add(new GroupData + { + Id = 1003, + TimeLine = "3/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 125, + ProCost = 96 + }); + groupData.Add(new GroupData + { + Id = 1004, + TimeLine = "4/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 215, + ProCost = 123 + }); + groupData.Add(new GroupData + { + Id = 1005, + TimeLine = "5/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 263, + ProCost = 125 + }); + groupData.Add(new GroupData + { + Id = 1006, + TimeLine = "6/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 61, + ProCost = 50 + }); + groupData.Add(new GroupData + { + Id = 1007, + TimeLine = "7/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 20, + ProCost = 31 + }); + groupData.Add(new GroupData + { + Id = 1008, + TimeLine = "8/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 133, + ProCost = 110 + }); + groupData.Add(new GroupData + { + Id = 1009, + TimeLine = "9/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 33, + ProCost = 65 + }); + groupData.Add(new GroupData + { + Id = 1010, + TimeLine = "10/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 37, + ProCost = 20 + }); + groupData.Add(new GroupData + { + Id = 1011, + TimeLine = "11/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 109, + ProCost = 96 + }); + groupData.Add(new GroupData + { + Id = 1012, + TimeLine = "12/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 266, + ProCost = 139 + }); + groupData.Add(new GroupData + { + Id = 1013, + TimeLine = "1/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 257, + ProCost = 143 + }); + groupData.Add(new GroupData + { + Id = 1014, + TimeLine = "2/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 79, + ProCost = 53 + }); + groupData.Add(new GroupData + { + Id = 1015, + TimeLine = "3/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 28, + ProCost = 48 + }); + groupData.Add(new GroupData + { + Id = 1016, + TimeLine = "4/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 128, + ProCost = 117 + }); + groupData.Add(new GroupData + { + Id = 1017, + TimeLine = "5/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 68, + ProCost = 48 + }); + groupData.Add(new GroupData + { + Id = 1018, + TimeLine = "6/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 26, + ProCost = 32 + }); + groupData.Add(new GroupData + { + Id = 1019, + TimeLine = "7/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 141, + ProCost = 98 + }); + groupData.Add(new GroupData + { + Id = 1020, + TimeLine = "8/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 281, + ProCost = 134 + }); + groupData.Add(new GroupData + { + Id = 1021, + TimeLine = "9/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 228, + ProCost = 107 + }); + groupData.Add(new GroupData + { + Id = 1022, + TimeLine = "10/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 73, + ProCost = 49 + }); + groupData.Add(new GroupData + { + Id = 1023, + TimeLine = "11/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 19, + ProCost = 44 + }); + groupData.Add(new GroupData + { + Id = 1024, + TimeLine = "12/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 149, + ProCost = 82 + }); + groupData.Add(new GroupData + { + Id = 1025, + TimeLine = "1/1/2017", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 47, + ProCost = 58 + }); + groupData.Add(new GroupData + { + Id = 1026, + TimeLine = "2/1/2017", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 25, + ProCost = 40 + }); + groupData.Add(new GroupData + { + Id = 1027, + TimeLine = "3/1/2017", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 127, + ProCost = 93 + }); + groupData.Add(new GroupData + { + Id = 1028, + TimeLine = "4/1/2017", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 216, + ProCost = 124 + }); + groupData.Add(new GroupData + { + Id = 1029, + TimeLine = "5/1/2017", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 267, + ProCost = 100 + }); + groupData.Add(new GroupData + { + Id = 1030, + TimeLine = "6/1/2017", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 52, + ProCost = 65 + }); + groupData.Add(new GroupData + { + Id = 1031, + TimeLine = "7/1/2017", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 39, + ProCost = 33 + }); + groupData.Add(new GroupData + { + Id = 1032, + TimeLine = "8/1/2017", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 142, + ProCost = 97 + }); + groupData.Add(new GroupData + { + Id = 1033, + TimeLine = "9/1/2017", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 53, + ProCost = 49 + }); + groupData.Add(new GroupData + { + Id = 1034, + TimeLine = "10/1/2017", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 23, + ProCost = 44 + }); + groupData.Add(new GroupData + { + Id = 1035, + TimeLine = "11/1/2017", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 113, + ProCost = 106 + }); + groupData.Add(new GroupData + { + Id = 1036, + TimeLine = "12/1/2017", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 270, + ProCost = 101 + }); + groupData.Add(new GroupData + { + Id = 1037, + TimeLine = "1/1/2018", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 284, + ProCost = 105 + }); + groupData.Add(new GroupData + { + Id = 1038, + TimeLine = "2/1/2018", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 62, + ProCost = 43 + }); + groupData.Add(new GroupData + { + Id = 1039, + TimeLine = "1/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 32, + ProCost = 26 + }); + groupData.Add(new GroupData + { + Id = 1040, + TimeLine = "2/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 133, + ProCost = 83 + }); + groupData.Add(new GroupData + { + Id = 1041, + TimeLine = "3/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 51, + ProCost = 65 + }); + groupData.Add(new GroupData + { + Id = 1042, + TimeLine = "4/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 13, + ProCost = 25 + }); + groupData.Add(new GroupData + { + Id = 1043, + TimeLine = "5/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 139, + ProCost = 101 + }); + groupData.Add(new GroupData + { + Id = 1044, + TimeLine = "6/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 297, + ProCost = 130 + }); + groupData.Add(new GroupData + { + Id = 1045, + TimeLine = "7/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 236, + ProCost = 119 + }); + groupData.Add(new GroupData + { + Id = 1046, + TimeLine = "8/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 57, + ProCost = 66 + }); + groupData.Add(new GroupData + { + Id = 1047, + TimeLine = "9/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 16, + ProCost = 27 + }); + groupData.Add(new GroupData + { + Id = 1048, + TimeLine = "10/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 110, + ProCost = 93 + }); + groupData.Add(new GroupData + { + Id = 1049, + TimeLine = "11/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 55, + ProCost = 49 + }); + groupData.Add(new GroupData + { + Id = 1050, + TimeLine = "12/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 32, + ProCost = 39 + }); + groupData.Add(new GroupData + { + Id = 1051, + TimeLine = "1/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 128, + ProCost = 120 + }); + groupData.Add(new GroupData + { + Id = 1052, + TimeLine = "2/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 290, + ProCost = 128 + }); + groupData.Add(new GroupData + { + Id = 1053, + TimeLine = "3/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 201, + ProCost = 105 + }); + groupData.Add(new GroupData + { + Id = 1054, + TimeLine = "4/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 55, + ProCost = 46 + }); + groupData.Add(new GroupData + { + Id = 1055, + TimeLine = "5/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 20, + ProCost = 37 + }); + groupData.Add(new GroupData + { + Id = 1056, + TimeLine = "6/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 122, + ProCost = 118 + }); + groupData.Add(new GroupData + { + Id = 1057, + TimeLine = "7/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 69, + ProCost = 54 + }); + groupData.Add(new GroupData + { + Id = 1058, + TimeLine = "8/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 21, + ProCost = 41 + }); + groupData.Add(new GroupData + { + Id = 1059, + TimeLine = "9/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 140, + ProCost = 83 + }); + groupData.Add(new GroupData + { + Id = 1060, + TimeLine = "10/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 239, + ProCost = 121 + }); + groupData.Add(new GroupData + { + Id = 1061, + TimeLine = "11/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 283, + ProCost = 127 + }); + groupData.Add(new GroupData + { + Id = 1062, + TimeLine = "12/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 80, + ProCost = 40 + }); + groupData.Add(new GroupData + { + Id = 1063, + TimeLine = "1/1/2017", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 33, + ProCost = 40 + }); + groupData.Add(new GroupData + { + Id = 1064, + TimeLine = "2/1/2017", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 120, + ProCost = 81 + }); + groupData.Add(new GroupData + { + Id = 1065, + TimeLine = "3/1/2017", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 41, + ProCost = 69 + }); + groupData.Add(new GroupData + { + Id = 1066, + TimeLine = "4/1/2017", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 14, + ProCost = 21 + }); + groupData.Add(new GroupData + { + Id = 1067, + TimeLine = "5/1/2017", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 144, + ProCost = 93 + }); + groupData.Add(new GroupData + { + Id = 1068, + TimeLine = "6/1/2017", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 294, + ProCost = 146 + }); + groupData.Add(new GroupData + { + Id = 1069, + TimeLine = "7/1/2017", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 217, + ProCost = 103 + }); + groupData.Add(new GroupData + { + Id = 1070, + TimeLine = "8/1/2017", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 49, + ProCost = 44 + }); + groupData.Add(new GroupData + { + Id = 1071, + TimeLine = "9/1/2017", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 36, + ProCost = 21 + }); + groupData.Add(new GroupData + { + Id = 1072, + TimeLine = "10/1/2017", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 118, + ProCost = 115 + }); + groupData.Add(new GroupData + { + Id = 1073, + TimeLine = "11/1/2017", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 56, + ProCost = 41 + }); + groupData.Add(new GroupData + { + Id = 1074, + TimeLine = "12/1/2017", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 17, + ProCost = 36 + }); + groupData.Add(new GroupData + { + Id = 1075, + TimeLine = "1/1/2018", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 140, + ProCost = 81 + }); + groupData.Add(new GroupData + { + Id = 1076, + TimeLine = "2/1/2018", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 274, + ProCost = 109 + }); + groupData.Add(new GroupData + { + Id = 1077, + TimeLine = "1/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 284, + ProCost = 145 + }); + groupData.Add(new GroupData + { + Id = 1078, + TimeLine = "2/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 40, + ProCost = 49 + }); + groupData.Add(new GroupData + { + Id = 1079, + TimeLine = "3/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 12, + ProCost = 28 + }); + groupData.Add(new GroupData + { + Id = 1080, + TimeLine = "4/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 150, + ProCost = 115 + }); + groupData.Add(new GroupData + { + Id = 1081, + TimeLine = "5/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 73, + ProCost = 64 + }); + groupData.Add(new GroupData + { + Id = 1082, + TimeLine = "6/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 23, + ProCost = 47 + }); + groupData.Add(new GroupData + { + Id = 1083, + TimeLine = "7/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 102, + ProCost = 112 + }); + groupData.Add(new GroupData + { + Id = 1084, + TimeLine = "8/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 252, + ProCost = 112 + }); + groupData.Add(new GroupData + { + Id = 1085, + TimeLine = "9/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 222, + ProCost = 131 + }); + groupData.Add(new GroupData + { + Id = 1086, + TimeLine = "10/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 52, + ProCost = 46 + }); + groupData.Add(new GroupData + { + Id = 1087, + TimeLine = "11/1/2015", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 35, + ProCost = 30 + }); + groupData.Add(new GroupData + { + Id = 1088, + TimeLine = "12/1/2015", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 104, + ProCost = 101 + }); + groupData.Add(new GroupData + { + Id = 1089, + TimeLine = "1/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 46, + ProCost = 40 + }); + groupData.Add(new GroupData + { + Id = 1090, + TimeLine = "2/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 19, + ProCost = 31 + }); + groupData.Add(new GroupData + { + Id = 1091, + TimeLine = "3/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 118, + ProCost = 89 + }); + groupData.Add(new GroupData + { + Id = 1092, + TimeLine = "4/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 227, + ProCost = 130 + }); + groupData.Add(new GroupData + { + Id = 1093, + TimeLine = "5/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 226, + ProCost = 144 + }); + groupData.Add(new GroupData + { + Id = 1094, + TimeLine = "6/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 40, + ProCost = 52 + }); + groupData.Add(new GroupData + { + Id = 1095, + TimeLine = "7/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 19, + ProCost = 40 + }); + groupData.Add(new GroupData + { + Id = 1096, + TimeLine = "8/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 127, + ProCost = 91 + }); + groupData.Add(new GroupData + { + Id = 1097, + TimeLine = "9/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Hydro-electric", + PowUnits = 70, + ProCost = 66 + }); + groupData.Add(new GroupData + { + Id = 1098, + TimeLine = "10/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Geo-thermal", + PowUnits = 36, + ProCost = 21 + }); + groupData.Add(new GroupData + { + Id = 1099, + TimeLine = "11/1/2016", + Sector = "Public Sector", + EnerType = "Free Energy", + EneSource = "Solar", + PowUnits = 144, + ProCost = 85 + }); + groupData.Add(new GroupData + { + Id = 1100, + TimeLine = "12/1/2016", + Sector = "Private Sector", + EnerType = "Free Energy", + EneSource = "Wind", + PowUnits = 212, + ProCost = 130 + }); + + return groupData; + } + } + public class PivotCSVData { public string Region { get; set; } @@ -82,14 +1104,16 @@ public List GetVirtualData() { List VirtualData = new List(); - for (int i = 1; i <= 100; i++) + for (int i = 1; i <= 1000000; i++) { PivotViewData p = new PivotViewData { - ProductID = "PRO-" + (100 + i), + ProductID = "PRO-" + (1000000 + i), Year = (new string[] { "FY 2015", "FY 2016", "FY 2017", "FY 2018", "FY 2019" })[new Random().Next(5)], - Country = (new string[] { "Canada", "France", "Australia", "Germany", "France" })[new Random().Next(5)], - Product = (new string[] { "Car", "Van", "Bike", "Flight", "Bus" })[new Random().Next(5)], + Country = "USA", + Product = "Bike", + //Country = (new string[] { "Canada", "France", "Australia", "Germany", "France" })[new Random().Next(5)], + //Product = (new string[] { "Car", "Van", "Bike", "Flight", "Bus" })[new Random().Next(5)], Price = (3.4 * i) + 500, Sold = (i * 15) + 10 }; @@ -122,5 +1146,64 @@ public DataTable GetDataTable() return dt; } } + public class PivotExpandoData + { + public List Orders { get; set; } = new List(); + public List GetExpandoData() + { + Orders = Enumerable.Range(1, 75).Select((x) => + { + dynamic d = new ExpandoObject(); + d.OrderID = 1000 + (x % 100); + d.CustomerID = (new string[] { "ALFKI", "ANANTR", "ANTON", "BLONP", "BOLID" })[new Random().Next(5)]; + d.Freight = (new double[] { 2, 1, 4, 5, 3 })[new Random().Next(5)] * x; + d.OrderDate = (new DateTime[] { new DateTime(2010, 11, 5), new DateTime(2018, 10, 3), new DateTime(1995, 9, 9), new DateTime(2012, 8, 2), new DateTime(2015, 4, 11) })[new Random().Next(5)]; + d.ShipCountry = (new string[] { "USA", "UK" })[new Random().Next(2)]; + d.Verified = (new bool[] { true, false })[new Random().Next(2)]; + + return d; + }).Cast().ToList(); + return Orders; + } + } + + public class PivotDynamicData + { + public List Orders = new List() { }; + public List GetDynamicData() + { + Orders = Enumerable.Range(1, 100).Select((x) => + { + dynamic d = new DynamicDictionary(); + d.OrderID = 100 + x; + d.CustomerID = (new string[] { "ALFKI", "ANANTR", "ANTON", "BLONP", "BOLID" })[new Random().Next(5)]; + d.Freight = (new double[] { 2, 1, 4, 5, 3 })[new Random().Next(5)] * x; + d.OrderDate = (new DateTime[] { new DateTime(2010, 11, 5), new DateTime(2018, 10, 3), new DateTime(1995, 9, 9), new DateTime(2012, 8, 2), new DateTime(2015, 4, 11) })[new Random().Next(5)]; + d.ShipCountry = (new string[] { "USA", "UK" })[new Random().Next(2)]; + d.Verified = (new bool[] { true, false })[new Random().Next(2)]; + return d; + }).Cast().ToList(); + return Orders; + } + public class DynamicDictionary : System.Dynamic.DynamicObject + { + Dictionary dictionary = new Dictionary(); + public override bool TryGetMember(GetMemberBinder binder, out object result) + { + string name = binder.Name; + return dictionary.TryGetValue(name, out result); + } + public override bool TrySetMember(SetMemberBinder binder, object value) + { + dictionary[binder.Name] = value; + return true; + } + //The GetDynamicMemberNames method of DynamicObject class must be overridden and return the property names to perform data operation and editing while using DynamicObject. + public override System.Collections.Generic.IEnumerable GetDynamicMemberNames() + { + return this.dictionary?.Keys; + } + } + } } } From 1c792dfbbec92c91bb4523e6352fa091df89a168 Mon Sep 17 00:00:00 2001 From: maniram21 <57519347+maniram21@users.noreply.github.com> Date: Tue, 22 Dec 2020 15:48:01 +0530 Subject: [PATCH 3/5] Update PivotController.csproj --- PivotController/PivotController/PivotController.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PivotController/PivotController/PivotController.csproj b/PivotController/PivotController/PivotController.csproj index 803de20..88d5fa3 100644 --- a/PivotController/PivotController/PivotController.csproj +++ b/PivotController/PivotController/PivotController.csproj @@ -1,11 +1,11 @@ - + netcoreapp3.1 - + From 379d2eb195176dd51c00620d8495ed25db89dd62 Mon Sep 17 00:00:00 2001 From: maniram21 <57519347+maniram21@users.noreply.github.com> Date: Tue, 22 Dec 2020 15:58:03 +0530 Subject: [PATCH 4/5] Update PivotController.cs --- .../PivotController/Controllers/PivotController.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/PivotController/PivotController/Controllers/PivotController.cs b/PivotController/PivotController/Controllers/PivotController.cs index b213d69..f3dd5ca 100644 --- a/PivotController/PivotController/Controllers/PivotController.cs +++ b/PivotController/PivotController/Controllers/PivotController.cs @@ -23,7 +23,6 @@ public PivotController(IMemoryCache cache, IWebHostEnvironment environment) _hostingEnvironment = environment; } - // POST api/ [Route("/api/pivot/post")] [HttpPost] public async Task Post([FromBody]object args) @@ -63,8 +62,11 @@ public async Task GetData(FetchData param) { cacheEntry.SetSize(1); cacheEntry.AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(60); - // Here you need to return raw data + // Here, you can refer different kinds of data sources. We've bound a collection in this illustration. return new DataSource.PivotViewData().GetVirtualData(); + + // EXAMPLE: + // Other data sources, such as ExpandoObject, DynamicObject, DataTable, CSV, JSON, etc., can be bound as shown below. //return new DataSource.PivotDynamicData().GetDynamicData(); //return new DataSource.PivotExpandoData().GetExpandoData(); //return new DataSource.GroupData().GetGroupData(); From 496f628e87ca1a204d9725336bd10fb31c34e0df Mon Sep 17 00:00:00 2001 From: maniram21 <57519347+maniram21@users.noreply.github.com> Date: Tue, 22 Dec 2020 15:58:31 +0530 Subject: [PATCH 5/5] Update DataSource.cs --- .../PivotController/DataSource/DataSource.cs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/PivotController/PivotController/DataSource/DataSource.cs b/PivotController/PivotController/DataSource/DataSource.cs index 730adfe..50de98f 100644 --- a/PivotController/PivotController/DataSource/DataSource.cs +++ b/PivotController/PivotController/DataSource/DataSource.cs @@ -1104,16 +1104,14 @@ public List GetVirtualData() { List VirtualData = new List(); - for (int i = 1; i <= 1000000; i++) + for (int i = 1; i <= 100; i++) { PivotViewData p = new PivotViewData { - ProductID = "PRO-" + (1000000 + i), + ProductID = "PRO-" + (100 + i), Year = (new string[] { "FY 2015", "FY 2016", "FY 2017", "FY 2018", "FY 2019" })[new Random().Next(5)], - Country = "USA", - Product = "Bike", - //Country = (new string[] { "Canada", "France", "Australia", "Germany", "France" })[new Random().Next(5)], - //Product = (new string[] { "Car", "Van", "Bike", "Flight", "Bus" })[new Random().Next(5)], + Country = (new string[] { "Canada", "France", "Australia", "Germany", "France" })[new Random().Next(5)], + Product = (new string[] { "Car", "Van", "Bike", "Flight", "Bus" })[new Random().Next(5)], Price = (3.4 * i) + 500, Sold = (i * 15) + 10 };