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()); } }
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()); } }
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); }