public static DataTable getTypeReport(DateTime dt) { using (var context = new ControllerModel()) { DataTable dtb = new DataTable(); dtb.Columns.Add("Tên loại"); dtb.Columns.Add("Số lượng"); var listtype = TypeController.getList(); foreach (Types ty in listtype) { var amountofcustomers = context.Histories.Include("Customers").Where(o => o.dayadd.Day == dt.Day && o.dayadd.Month == dt.Month && o.dayadd.Year == dt.Year && o.Customers.available == true).Select(o => o.Customers).Distinct().ToList(); int count = 0; var test = amountofcustomers.Where(o => o.typeid == ty.typeid).ToList(); if (test.Count() > 0) { count = test.Count(); DataRow dtr = dtb.NewRow(); dtr["Tên loại"] = ty.name; dtr["Số lượng"] = count; dtb.Rows.Add(dtr); } } return(dtb); } }
public static bool AddnewReport(DateTime dt) { using (var context = new ControllerModel()) { try { var check = context.Reports.Where(o => o.datereport.Day == dt.Day && o.datereport.Month == dt.Month && o.datereport.Year == dt.Year).Count(); var amountofcustomers = context.Histories.Include("Customers").Where(o => o.dayadd.Day == dt.Day && o.dayadd.Month == dt.Month && o.dayadd.Year == dt.Year && o.Customers.available == true).Select(o => o.Customers).Distinct().ToList(); var newCustomer = context.Customers.Where(o => o.dayadd.Day == dt.Day && o.dayadd.Month == dt.Month && o.dayadd.Year == dt.Year && o.available == true).Count(); context.Histories.Where(o => o.dayadd.Day == dt.Day && o.dayadd.Month == dt.Month && o.dayadd.Year == dt.Year).ToList().ForEach(o => o.ischeck = true); if (check == 0) { var report = new Reports { amountofactivecustomer = amountofcustomers.Count(), amountofnewcustomer = newCustomer, serverreport = false, datereport = dt, dayadd = DateTime.Now, dayupdate = DateTime.Now }; context.Reports.Add(report); var listtype = TypeController.getList(); foreach (Types ty in listtype) { int count = 0; var test = amountofcustomers.Where(o => o.typeid == ty.typeid).ToList(); if (test.Count > 0) { count = test.Count(); var tr = new SNI.Models.TypesReports { Types = context.Types.Where(o => o.typeid == ty.typeid).FirstOrDefault(), Reports = report, amounts = count, dayadd = DateTime.Now, dayupdate = DateTime.Now }; context.TypesReports.Add(tr); } } context.SaveChanges(); } else { var report1 = context.Reports.Where(o => o.datereport.Day == dt.Day && o.datereport.Month == dt.Month && o.datereport.Year == dt.Year).FirstOrDefault(); report1.amountofactivecustomer = amountofcustomers.Count(); report1.amountofnewcustomer = newCustomer; report1.serverreport = false; report1.datereport = dt; report1.dayupdate = DateTime.Now; var listtype = TypeController.getList(); foreach (Types ty in listtype) { int count = 0; var test = amountofcustomers.Where(o => o.typeid == ty.typeid).ToList(); if (test.Count > 0) { var check1 = context.TypesReports.Where(o => o.typeid == ty.typeid && o.reportid == report1.reportid).Count(); count = test.Count(); if (check1 == 0) { var tr = new SNI.Models.TypesReports { Types = context.Types.Where(o => o.typeid == ty.typeid).FirstOrDefault(), Reports = report1, amounts = count, dayadd = DateTime.Now, dayupdate = DateTime.Now }; context.TypesReports.Add(tr); } else { var typer = context.TypesReports.Where(o => o.typeid == ty.typeid && o.reportid == report1.reportid).FirstOrDefault(); typer.amounts = count; } } else { var gettpyr = context.TypesReports.Where(o => o.typeid == ty.typeid && o.reportid == report1.reportid).FirstOrDefault(); if (gettpyr != null) { context.TypesReports.Remove(gettpyr); } } } context.SaveChanges(); } JsonPost.PostAPI(dt); return(true); } catch (Exception ex) { return(false); } } }