public JsonResult AssignedLicenseBarChartResult(ChartLoadRequestObject reqObj) { DateTime startDate = System.DateTime.Now.AddDays(-365); DateTime endDate = System.DateTime.Now; string connectionString = ConfigurationManager.ConnectionStrings["NHSConStr"].ConnectionString; DBEngine dBEngine = new DBEngine(connectionString); List <NHS.Common.LicenseUsage> usage = dBEngine.GetUserCount(startDate, endDate, Convert.ToInt32(Session["LoginUserID"])); var filteredUsages = new List <LicenseUsage>(); var noOfTotalUsedLicense = 0; foreach (var data in usage.GroupBy(x => x.DistinctYear).ToList()) { noOfTotalUsedLicense += data.Sum(x => x.UsedLicense); var licenseData = new LicenseUsage() { DistinctYear = data.Key, LicenseCount = data.GroupBy(z => z.LicenseCount).FirstOrDefault().Key, UnusedLicense = data.GroupBy(z => z.LicenseCount).FirstOrDefault().Key - noOfTotalUsedLicense, UsedLicense = data.Sum(x => x.UsedLicense) }; filteredUsages.Add(licenseData); } var licenseInfo = new LicenseInformation { //TotalNodLicenseAllocated = yearlyResult.LicenseCount.ToString(), NoOfUsedLicense = filteredUsages.Sum(x => x.UsedLicense).ToString(), NoOfUnusedLicense = (filteredUsages.FirstOrDefault().LicenseCount - filteredUsages.Sum(x => x.UsedLicense)).ToString(), }; var serisData = new[] { Convert.ToInt32(licenseInfo.NoOfUsedLicense), Convert.ToInt32(licenseInfo.NoOfUnusedLicense) }; var LabelData = new[] { "Used", "Unused" }; var result = new { serisData, LabelData, licenseInfo }; return(Json(result, JsonRequestBehavior.AllowGet)); }
public JsonResult UserLicenseChartResult(ChartLoadRequestObject reqObj) { DateTime startDate = string.IsNullOrEmpty(reqObj.StartDate) ? System.DateTime.Now.AddDays(-365) : DateTime.ParseExact(reqObj.StartDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); DateTime endDate = string.IsNullOrEmpty(reqObj.EndDate) ? System.DateTime.Now : DateTime.ParseExact(reqObj.EndDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); string connectionString = ConfigurationManager.ConnectionStrings["NHSConStr"].ConnectionString; DBEngine dBEngine = new DBEngine(connectionString); List <NHS.Common.LicenseUsage> usage = dBEngine.GetUserCount(startDate, endDate, Convert.ToInt32(Session["LoginUserID"])); List <NHS.Common.LicenseUsage> filteredUsages = new List <NHS.Common.LicenseUsage>(); if (reqObj.RequestType == DataTypeEnum.yearly.ToString()) { //filteredUsages = usage.GroupBy(x => x.DistinctYear) // .Select(y => new LicenseUsage // { // DistinctYear = y.Key, // LicenseCount = y.GroupBy(z => z.LicenseCount).FirstOrDefault().Key, // UnusedLicense = y.GroupBy(z => z.LicenseCount).FirstOrDefault().Key - y.Sum(z => z.UsedLicense), // UsedLicense = y.Sum(z => z.UsedLicense), // }).ToList(); var noOfTotalUsedLicense = 0; foreach (var data in usage.GroupBy(x => x.DistinctYear).ToList()) { noOfTotalUsedLicense += data.Sum(x => x.UsedLicense); var licenseData = new NHS.Common.LicenseUsage() { DistinctYear = data.Key, LicenseCount = data.GroupBy(z => z.LicenseCount).FirstOrDefault().Key, UnusedLicense = data.GroupBy(z => z.LicenseCount).FirstOrDefault().Key - noOfTotalUsedLicense, UsedLicense = data.Sum(x => x.UsedLicense) }; filteredUsages.Add(licenseData); } } else if (reqObj.RequestType == DataTypeEnum.monthly.ToString()) { var noOfTotalUsedLicense = 0; foreach (var data in usage.GroupBy(x => x.Month).ToList()) { noOfTotalUsedLicense += data.Sum(x => x.UsedLicense); var licenseData = new NHS.Common.LicenseUsage() { Month = data.Key, LicenseCount = data.GroupBy(z => z.LicenseCount).FirstOrDefault().Key, UnusedLicense = data.GroupBy(z => z.LicenseCount).FirstOrDefault().Key - noOfTotalUsedLicense, UsedLicense = data.Sum(x => x.UsedLicense) }; filteredUsages.Add(licenseData); } } else if (reqObj.RequestType == DataTypeEnum.weekly.ToString()) { var noOfTotalUsedLicense = 0; foreach (var data in usage.GroupBy(x => x.Week).ToList()) { noOfTotalUsedLicense += data.Sum(x => x.UsedLicense); var licenseData = new NHS.Common.LicenseUsage() { Week = data.Key, LicenseCount = data.GroupBy(z => z.LicenseCount).FirstOrDefault().Key, UnusedLicense = data.GroupBy(z => z.LicenseCount).FirstOrDefault().Key - noOfTotalUsedLicense, UsedLicense = data.Sum(x => x.UsedLicense) }; filteredUsages.Add(licenseData); } } else if (reqObj.RequestType == DataTypeEnum.daily.ToString()) { var noOfTotalUsedLicense = 0; foreach (var data in usage.GroupBy(x => x.Day).ToList()) { noOfTotalUsedLicense += data.Sum(x => x.UsedLicense); var licenseData = new NHS.Common.LicenseUsage() { Day = data.Key, LicenseCount = data.GroupBy(z => z.LicenseCount).FirstOrDefault().Key, UnusedLicense = data.GroupBy(z => z.LicenseCount).FirstOrDefault().Key - noOfTotalUsedLicense, UsedLicense = data.Sum(x => x.UsedLicense) }; filteredUsages.Add(licenseData); } } else { filteredUsages = usage; } var licenseInfo = new LicenseInformation { TotalNodLicenseAllocated = filteredUsages.FirstOrDefault()?.LicenseCount.ToString(), //NoOfUsedLicense = filteredUsages.FirstOrDefault()?.UsedLicense.ToString(), //NoOfUnusedLicense = filteredUsages.FirstOrDefault()?.UnusedLicense.ToString(), }; var usedData = new List <string>(); var unUsedData = new List <string>(); var years = new List <string>(); var months = new List <string>(); var weeks = new List <string>(); var days = new List <string>(); foreach (var row in filteredUsages) { usedData.Add(row.UsedLicense.ToString()); unUsedData.Add(row.UnusedLicense.ToString()); if (reqObj.RequestType == DataTypeEnum.yearly.ToString()) { years.Add(row.DistinctYear); } if (reqObj.RequestType == DataTypeEnum.monthly.ToString()) { months.Add(row.Month); } if (reqObj.RequestType == DataTypeEnum.weekly.ToString()) { weeks.Add(row.Week); } if (reqObj.RequestType == DataTypeEnum.daily.ToString()) { days.Add(row.Day); } } List <ChartResponseInformation> userLicenseData = new List <ChartResponseInformation>() { new ChartResponseInformation() { name = "Used", data = usedData.ToArray() }, new ChartResponseInformation() { name = "Unused", data = unUsedData.ToArray() } }; ChartOptionInformation userLicenseChartConfig = new ChartOptionInformation() { X_axisCategoryType = "category", X_axisCategories = reqObj.RequestType == DataTypeEnum.yearly.ToString() ? years.ToArray() : reqObj.RequestType == DataTypeEnum.monthly.ToString() ? months.ToArray() : reqObj.RequestType == DataTypeEnum.weekly.ToString() ? weeks.ToArray() : reqObj.RequestType == DataTypeEnum.daily.ToString() ? days.ToArray() : years.ToArray() }; var chartInfo = userLicenseData; var opt = userLicenseChartConfig; var result = new ChartResultResponse() { LicenseInfo = licenseInfo, ChartInfo = chartInfo, ChartOptions = opt, UsersLicenseInformationTableData = usage }; return(Json(result, JsonRequestBehavior.AllowGet)); }