Example #1
0
        public DataCompareVM Compare(string obj)
        {
            var model = new DataCompareVM();

            obj = obj.ToSafetyString();
            var value = obj.Split('-');
            var size  = value.Length;

            if (size == 2)
            {
                var kpilevelcode1 = value[0].Split(',')[0];
                var period1       = value[1].Split(',')[1];
                var kpilevelcode2 = value[1].Split(',')[0];
                var period2       = value[1].Split(',')[1];
                model.list1 = Compare(kpilevelcode1, period1);
                model.list2 = Compare(kpilevelcode2, period2);
                return(model);
            }
            else if (size == 3)
            {
                var kpilevelcode1 = value[0].Split(',')[0];
                var period1       = value[1].Split(',')[1];

                var kpilevelcode2 = value[1].Split(',')[0];
                var period2       = value[1].Split(',')[1];

                var kpilevelcode3 = value[2].Split(',')[0];
                var period3       = value[2].Split(',')[1];
                model.list1 = Compare(kpilevelcode1, period1);
                model.list2 = Compare(kpilevelcode2, period2);
                model.list3 = Compare(kpilevelcode3, period3);
                return(model);
            }
            else if (size == 4)
            {
                var kpilevelcode1 = value[0].Split(',')[0];
                var period1       = value[1].Split(',')[1];

                var kpilevelcode2 = value[1].Split(',')[0];
                var period2       = value[1].Split(',')[1];

                var kpilevelcode3 = value[2].Split(',')[0];
                var period3       = value[2].Split(',')[1];

                var kpilevelcode4 = value[3].Split(',')[0];
                var period4       = value[3].Split(',')[1];
                model.list1 = Compare(kpilevelcode1, period1);
                model.list2 = Compare(kpilevelcode2, period2);
                model.list3 = Compare(kpilevelcode3, period3);
                model.list4 = Compare(kpilevelcode4, period4);
                return(model);
            }
            else
            {
                return(new DataCompareVM());
            }
        }
Example #2
0
        public DataCompareVM Compare(string obj)
        {
            var listChartVM = new List <ChartVM>();
            var model       = new DataCompareVM();

            obj = obj.ToSafetyString();

            var value = obj.Split('-');

            model.Period = value[1].Split(',')[1];
            var size = value.Length;

            foreach (var item in value)
            {
                var kpilevelcode = item.Split(',')[0];
                var period       = item.Split(',')[1];
                listChartVM.Add(Compare(kpilevelcode, period));
                model.list1 = Compare(kpilevelcode, period);
            }

            if (size == 2)
            {
                var kpilevelcode1 = value[0].Split(',')[0];
                var period1       = value[1].Split(',')[1];
                var kpilevelcode2 = value[1].Split(',')[0];
                var period2       = value[1].Split(',')[1];
                model.list1 = Compare(kpilevelcode1, period1);
                model.list2 = Compare(kpilevelcode2, period2);

                return(model);
            }
            else if (size == 3)
            {
                var kpilevelcode1 = value[0].Split(',')[0];
                var period1       = value[1].Split(',')[1];

                var kpilevelcode2 = value[1].Split(',')[0];
                var period2       = value[1].Split(',')[1];

                var kpilevelcode3 = value[2].Split(',')[0];
                var period3       = value[2].Split(',')[1];
                model.list1 = Compare(kpilevelcode1, period1);
                model.list2 = Compare(kpilevelcode2, period2);
                model.list3 = Compare(kpilevelcode3, period3);
                return(model);
            }
            else if (size == 4)
            {
                var kpilevelcode1 = value[0].Split(',')[0];
                var period1       = value[1].Split(',')[1];

                var kpilevelcode2 = value[1].Split(',')[0];
                var period2       = value[1].Split(',')[1];

                var kpilevelcode3 = value[2].Split(',')[0];
                var period3       = value[2].Split(',')[1];

                var kpilevelcode4 = value[3].Split(',')[0];
                var period4       = value[3].Split(',')[1];
                model.list1 = Compare(kpilevelcode1, period1);
                model.list2 = Compare(kpilevelcode2, period2);
                model.list3 = Compare(kpilevelcode3, period3);
                model.list4 = Compare(kpilevelcode4, period4);
                return(model);
            }
            else
            {
                return(new DataCompareVM());
            }
        }
Example #3
0
        public ChartVM2 Compare2(string kpilevelcode, string period)
        {
            var model2 = new DataCompareVM();

            var model = new ChartVM2();

            var item = _dbContext.KPILevels.FirstOrDefault(x => x.KPILevelCode == kpilevelcode);

            model.kpiname      = _dbContext.KPIs.Find(item.KPIID).Name;
            model.label        = _dbContext.Levels.FirstOrDefault(x => x.ID == item.LevelID).Name;
            model.kpilevelcode = kpilevelcode;

            var unit     = _dbContext.KPIs.FirstOrDefault(x => x.ID == item.KPIID).Unit;
            var unitName = _dbContext.Units.FirstOrDefault(x => x.ID == unit).Name;

            if (period == "W")
            {
                //Tạo ra 1 mảng tuần mặc định bằng 0
                List <string> listDatasets = new List <string>();

                //labels của chartjs mặc định có 53 phần tử = 0
                List <string> listLabels = new List <string>();

                //labels của chartjs mặc định có 53 phần tử = 0
                List <string> targets = new List <string>();

                var datas = _dbContext.Datas.Where(x => x.KPILevelCode == kpilevelcode && x.Period == period).OrderBy(x => x.Week).Select(x => new { x.Value, x.Week, x.Target }).ToList();
                foreach (var valueWeek in datas)
                {
                    listDatasets.Add(valueWeek.Value);
                    listLabels.Add(valueWeek.Week.ToString());
                    targets.Add(valueWeek.Target.ToString());
                }

                model.datasets = listDatasets.ToArray();
                model.labels   = listLabels.ToArray();
                model.targets  = targets.ToArray();
                model.period   = period;
            }
            if (period == "M")
            {
                //Tạo ra 1 mảng tuần mặc định bằng 0
                List <string> listDatasets = new List <string>();

                //labels của chartjs mặc định có 53 phần tử = 0
                List <string> listLabels = new List <string>();
                //labels của chartjs mặc định có 53 phần tử = 0
                List <string> targets = new List <string>();

                var datas = _dbContext.Datas.Where(x => x.KPILevelCode == kpilevelcode && x.Period == period).OrderBy(x => x.Month).Select(x => new { x.Month, x.Value, x.Target }).ToList();
                foreach (var monthly in datas)
                {
                    listDatasets.Add(monthly.Value);
                    switch (monthly.Month)
                    {
                    case 1:
                        listLabels.Add("Jan"); break;

                    case 2:
                        listLabels.Add("Feb"); break;

                    case 3:
                        listLabels.Add("Mar"); break;

                    case 4:
                        listLabels.Add("Apr"); break;

                    case 5:
                        listLabels.Add("May"); break;

                    case 6:
                        listLabels.Add("Jun"); break;

                    case 7:
                        listLabels.Add("Jul"); break;

                    case 8:
                        listLabels.Add("Aug"); break;

                    case 9:
                        listLabels.Add("Sep");
                        break;

                    case 10:
                        listLabels.Add("Oct"); break;

                    case 11:
                        listLabels.Add("Nov"); break;

                    case 12:
                        listLabels.Add("Dec"); break;
                    }
                }
                model.datasets = listDatasets.ToArray();
                model.labels   = listLabels.ToArray();
                model.period   = period;
                model.targets  = targets.ToArray();
            }
            if (period == "Q")
            {
                //Tạo ra 1 mảng tuần mặc định bằng 0
                List <string> listDatasets = new List <string>();

                //labels của chartjs mặc định có 53 phần tử = 0
                List <string> listLabels = new List <string>();

                //labels của chartjs mặc định có 53 phần tử = 0
                List <string> targets = new List <string>();
                var           datas   = _dbContext.Datas.Where(x => x.KPILevelCode == kpilevelcode && x.Period == period).OrderBy(x => x.Quarter).Select(x => new { x.Quarter, x.Value, x.Target }).ToList();
                foreach (var quarterly in datas)
                {
                    listDatasets.Add(quarterly.Value);
                    switch (quarterly.Quarter)
                    {
                    case 1:
                        listLabels.Add("Quarter 1"); break;

                    case 2:
                        listLabels.Add("Quarter 2"); break;

                    case 3:
                        listLabels.Add("Quarter 3"); break;

                    case 4:
                        listLabels.Add("Quarter 4"); break;
                    }
                }
                model.datasets = listDatasets.ToArray();
                model.labels   = listLabels.ToArray();
                model.period   = period;
                model.Unit     = unitName;
                model.targets  = targets.ToArray();
                model.Standard = _dbContext.KPILevels.FirstOrDefault(x => x.KPILevelCode == kpilevelcode && x.QuarterlyChecked == true).QuarterlyStandard;
            }
            if (period == "Y")
            {
                var datasetsKPILevel1 = _dbContext.Datas.Where(x => x.KPILevelCode == kpilevelcode && x.Period == period).OrderBy(x => x.Year).Select(x => x.Value).ToArray();
                var labelsKPILevel1   = _dbContext.Datas.Where(x => x.KPILevelCode == kpilevelcode && x.Period == period).OrderBy(x => x.Year).Select(x => x.Year).ToArray();
                var labels1           = Array.ConvertAll(labelsKPILevel1, x => x.ToSafetyString());
                var targets           = _dbContext.Datas.Where(x => x.KPILevelCode == kpilevelcode && x.Period == period).OrderBy(x => x.Year).Select(x => x.Target).ToArray();

                model.datasets = datasetsKPILevel1;
                model.labels   = labels1;
                model.period   = period;
                model.targets  = Array.ConvertAll(targets, x => x.ToSafetyString());
            }
            return(model);
        }