public ChartOutput Loc1(ChartInputByMonth input) { var result = new ChartOutput(); var data = new List <ChartOutputItem>(); var fields = input.fields.Split(new string[] { "##" }, StringSplitOptions.None); var fieldsLength = fields.Length; var values = input.values.Split(new string[] { "##" }, StringSplitOptions.None); string function = ""; var tuNgaystr = DateTimeHelper.GetStartDateOfMonth(input.month, input.year); var denNgaystr = DateTimeHelper.GetLastDateOfMonth(input.month, input.year); var tuNgay = string.IsNullOrEmpty(tuNgaystr) ? DateTime.MinValue : DateTime.ParseExact(tuNgaystr, "dd/MM/yyyy", CultureInfo.InvariantCulture); var denNgay = string.IsNullOrEmpty(denNgaystr) ? DateTime.MaxValue : DateTime.ParseExact(denNgaystr, "dd/MM/yyyy", CultureInfo.InvariantCulture); var listVanBan = new List <VanBan>(); using (var db = new BCDHContext()) { var vanBan = db.VanBan. Where(x => x.PhanMem == input.maPhanMem && (x.DonViXuLyChinh == input.maDonVi || x.DonViXuLyChinh == input.maDonVi) ) .ToList(); //vanBan = vanBan.Where( // x => (DateTime.ParseExact(HttpUtility.UrlDecode(x.NgayGiao), "dd/MM/yyyy", CultureInfo.InvariantCulture) >= tuNgay) // && (DateTime.ParseExact(HttpUtility.UrlDecode(x.NgayGiao), "dd/MM/yyyy", CultureInfo.InvariantCulture) <= denNgay)) // .ToList(); foreach (var item in vanBan) { string ngayGiao = HttpUtility.UrlDecode(item.NgayGiao); if (string.IsNullOrEmpty(ngayGiao)) { continue; } if (DateTime.ParseExact(ngayGiao, "dd/MM/yyyy", CultureInfo.InvariantCulture) >= tuNgay && DateTime.ParseExact(ngayGiao, "dd/MM/yyyy", CultureInfo.InvariantCulture) <= denNgay) { listVanBan.Add(item); } } vanBan.Clear(); vanBan.AddRange(listVanBan); for (int i = 0; i < fieldsLength; i++) { if (fields[i] == "TrangThaiChung") { if (i == fieldsLength - 1) { if (values[i] == "null") { var listTrangThaiChung = db.TrangThaiChung.ToList(); foreach (var item in listTrangThaiChung) { var value = vanBan.Where(x => x.MaTrangThaiChung == item.Ma).Count(); var chartOutputItem = new ChartOutputItem { title = item.Ten, code = item.Ma, value = value }; data.Add(chartOutputItem); } result.type = "cot"; result.title = "Biểu đồ theo trạng thái"; result.function = function + "TrangThaiChung"; } else { var maTrangThaiChung = values[i]; var trangThaiChung = db.TrangThaiChung.Where(x => x.Ma == maTrangThaiChung).FirstOrDefault(); var value = vanBan.Where(x => x.MaTrangThaiChung == maTrangThaiChung).ToList().Count(); var charOutputItem = new ChartOutputItem { title = trangThaiChung.Ten, code = maTrangThaiChung, value = value }; data.Add(charOutputItem); result.type = "cot"; result.title = "Biểu đồ theo trạng thái"; result.function = function + "TrangThaiChung"; } } else { var trangThai = values[i]; vanBan = vanBan.Where(x => x.MaTrangThaiChung == trangThai).ToList(); function += fields[i] + "##"; } } if (fields[i] == "TinhTrang") { if (i == fieldsLength - 1) { if (values[i] == "null") { var listTinhTrang = db.TinhTrang.ToList(); foreach (var item in listTinhTrang) { var value = vanBan.Where(x => x.MaTinhTrang == item.Ma).Count(); var chartOutputItem = new ChartOutputItem { title = item.Ten, code = item.Ma, value = value }; data.Add(chartOutputItem); } result.type = "cot"; result.title = "Biểu đồ theo tình trạng xử lý"; result.function = function + "TinhTrang"; } else { var maTinhTrang = values[i]; var tinhTrang = db.TinhTrang.Where(x => x.Ma == maTinhTrang).FirstOrDefault(); var value = vanBan.Where(x => x.MaTinhTrang == maTinhTrang).ToList().Count(); var charOutputItem = new ChartOutputItem { title = tinhTrang.Ten, code = maTinhTrang, value = value }; data.Add(charOutputItem); result.type = "cot"; result.title = "Biểu đồ theo tình trạng xử lý"; result.function = function + "TinhTrang"; } } else { var tinhTrang = values[i]; vanBan = vanBan.Where(x => x.MaTinhTrang == tinhTrang).ToList(); function += fields[i] + "##"; } } if (fields[i] == "TrangThaiPhanMem") { if (i == fieldsLength) { if (values[i] == "null") { var listTrangThaiPhanMem = db.TrangThaiPhanMem.ToList(); foreach (var item in listTrangThaiPhanMem) { var value = vanBan.Where(x => x.MaTrangThaiPhanMem == item.Ma).Count(); var chartOutputItem = new ChartOutputItem { title = item.Ten, code = item.Ma, value = value }; data.Add(chartOutputItem); } result.type = "cot"; result.title = "Biểu đồ theo trạng thái phần mềm"; result.function = function + "TrangThaiPhanMem"; } else { var maTrangThaiPhanMem = values[i]; var trangThaiPhanMem = db.TrangThaiPhanMem.Where(x => x.Ma == maTrangThaiPhanMem).FirstOrDefault(); var value = vanBan.Where(x => x.MaTrangThaiPhanMem == maTrangThaiPhanMem).ToList().Count(); var charOutputItem = new ChartOutputItem { title = trangThaiPhanMem.Ten, code = maTrangThaiPhanMem, value = value }; data.Add(charOutputItem); result.type = "cot"; result.title = "Biểu đồ theo trạng thái phần mềm"; result.function = function + "TrangThaiPhanMem"; } } else { var trangThaiPhanMem = values[i]; vanBan = vanBan.Where(x => x.MaTrangThaiPhanMem == trangThaiPhanMem).ToList(); function += fields[i] + "##"; } } } var listAvailable = new List <string> { "TrangThaiChung", "TinhTrang", "TrangThaiPhanMem" }; var available = ""; foreach (var item in listAvailable) { if (!input.fields.Contains(item)) { available += item + "##"; } } result.data = data; result.available = available; return(result); } }
public ChartOutput Loc1(ChartInputByMonth input) { throw new NotImplementedException(); }