Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }