public JsonResult SubmitDocument(int id, string module) { string message = ""; string status = ""; try { switch (module) { case "FE": var modelFE = _context.FireExtinguisherHeaders.Find(id); int FELocationCnt = _context.LocationFireExtinguishers.Where(a => a.AreaId == modelFE.AreaId) .Where(a => a.Status == "Active") .Count(); int FEDetails = _context.FireExtinguisherDetails.Where(a => a.FireExtinguisherHeaders.AreaId == modelFE.AreaId) .Where(a => a.FireExtinguisherHeaders.Status == "Active") //02282022 .Where(a => a.FireExtinguisherHeaders.DocumentStatus != "Approved") //02282022 .GroupBy(a => a.LocationFireExtinguisherId) .Count(); if (FELocationCnt == FEDetails) { modelFE.DocumentStatus = "For Review"; _context.Update(modelFE); status = "success"; } else { message = "Submit not allowed. Not all locations has been checked"; status = "fail" + "Submit not allowed. Not all locations has been checked"; } break; case "EL": var modelEL = _context.EmergencyLightHeaders.Find(id); int ELLocationCnt = _context.LocationEmergencyLights.Where(a => a.AreaId == modelEL.AreaId).Where(a => a.Status == "Active").Count(); int ELDetails = _context.EmergencyLightDetails.Where(a => a.EmergencyLightHeaders.AreaId == modelEL.AreaId) .Where(a => a.EmergencyLightHeaders.Status == "Active") //02282022 .Where(a => a.EmergencyLightHeaders.DocumentStatus != "Approved") //02282022 .GroupBy(a => a.LocationEmergencyLightId) .Count(); if (ELLocationCnt == ELDetails) { modelEL.DocumentStatus = "For Review"; _context.Update(modelEL); status = "success"; } else { message = "Submit not allowed. Not all locations has been checked"; status = "fail" + "Submit not allowed. Not all locations has been checked"; } break; case "IT": var modelIT = _context.InergenTankHeaders.Find(id); int ITLocationCnt = _context.LocationInergenTanks.Where(a => a.AreaId == modelIT.AreaId).Where(a => a.Status == "Active").Count(); int ITDetails = _context.InergenTankDetails.Where(a => a.InergenTankHeaders.AreaId == modelIT.AreaId) .Where(a => a.InergenTankHeaders.Status == "Active") //02282022 .Where(a => a.InergenTankHeaders.DocumentStatus != "Approved") //02282022 .GroupBy(a => a.LocationInergenTankId) .Count(); if (ITLocationCnt == ITDetails) { modelIT.DocumentStatus = "For Review"; _context.Update(modelIT); status = "success"; } else { message = "Submit not allowed. Not all locations has been checked"; status = "fail" + "Submit not allowed. Not all locations has been checked"; } break; case "FH": var modelFH = _context.FireHydrantHeaders.Find(id); int FHLocationCnt = _context.LocationFireHydrants.Where(a => a.AreaId == modelFH.AreaId).Where(a => a.Status == "Active").Count(); int FHDetails = _context.FireHydrantDetails.Where(a => a.FireHydrantHeaders.AreaId == modelFH.AreaId) .Where(a => a.FireHydrantHeaders.Status == "Active") //02282022 .Where(a => a.FireHydrantHeaders.DocumentStatus != "Approved") //02282022 .GroupBy(a => a.LocationFireHydrantId) .Count(); if (FHLocationCnt == FHDetails) { modelFH.DocumentStatus = "For Review"; _context.Update(modelFH); status = "success"; } else { message = "Submit not allowed. Not all locations has been checked"; status = "fail" + "Submit not allowed. Not all locations has been checked"; } break; case "BC": var modelBC = _context.BicycleEntryHeaders.Find(id); modelBC.DocumentStatus = "For Approval"; _context.Update(modelBC); status = "success"; break; default: break; } string equipmenttype = module.ToLower(); if (status == "success") { if (equipmenttype != "bc") { string stat = new NotifyController(_context).SendNotification("For Review", equipmenttype, id); // send email } else { string stat = new NotifyController(_context).SendNotification("For Approval", equipmenttype, id); // send email } } Log log = new Log { Descriptions = "SubmitDocument ID " + id + " MODULE " + module, Action = "Add", Status = status, }; _context.Add(log); _context.SaveChanges(); } catch (Exception e) { status = "fail"; message = e.Message; } var model = new { status, message }; return(Json(model)); }
public JsonResult Approve(int[] id, string docstatus, string equipmenttype) { string status = ""; string message = ""; string refno = ""; if (docstatus == "For Review") { docstatus = "For Approval"; } else { docstatus = "Approved"; } switch (equipmenttype) { case "fe": foreach (var item in id) { var wdif = _context.FireExtinguisherHeaders.Find(item); wdif.DocumentStatus = docstatus; if (docstatus == "For Approval") { wdif.ReviewedDate = DateTime.Now.Date; _context.FireExtinguisherDetails.Where(a => a.FireExtinguisherHeaderId == item).ToList() .ForEach(a => a.ReviewedBy = User.Identity.GetFullName() ); } else { wdif.ApprovedDate = DateTime.Now.Date; _context.FireExtinguisherDetails.Where(a => a.FireExtinguisherHeaderId == item).ToList() .ForEach(a => a.NotedBy = User.Identity.GetFullName() ); } _context.Entry(wdif).State = EntityState.Modified; Log log = new Log { Descriptions = "Modified FEHeader, Id = " + item, Action = "Modify", Status = "Success", UserId = User.Identity.GetUserName(), CreatedDate = DateTime.Now }; _context.Add(log); _context.SaveChanges(); string stat = new NotifyController(_context).SendNotification(docstatus, equipmenttype, item); // send email } status = "success"; var model = new { status, message, }; return(Json(model)); case "el": foreach (var item in id) { var wdif = _context.EmergencyLightHeaders.Find(item); wdif.DocumentStatus = docstatus; if (docstatus == "For Approval") { wdif.ReviewedDate = DateTime.Now.Date; _context.EmergencyLightDetails.Where(a => a.EmergencyLightHeaderId == item).ToList() .ForEach(a => a.ReviewedBy = User.Identity.GetFullName() ); } else { wdif.ApprovedDate = DateTime.Now.Date; _context.EmergencyLightDetails.Where(a => a.EmergencyLightHeaderId == item).ToList() .ForEach(a => a.NotedBy = User.Identity.GetFullName() ); } _context.Entry(wdif).State = EntityState.Modified; Log log = new Log { Descriptions = "Modified ELHeader, Id = " + item, Action = "Modify", Status = "Success", UserId = User.Identity.GetUserName(), CreatedDate = DateTime.Now }; _context.Add(log); _context.SaveChanges(); string stat = new NotifyController(_context).SendNotification(docstatus, equipmenttype, item); // send email } status = "success"; var modelel = new { status, message, }; return(Json(modelel)); case "it": foreach (var item in id) { var wdif = _context.InergenTankHeaders.Find(item); wdif.DocumentStatus = docstatus; if (docstatus == "For Approval") { wdif.ReviewedDate = DateTime.Now.Date; _context.InergenTankDetails.Where(a => a.InergenTankHeaderId == item).ToList() .ForEach(a => a.ReviewedBy = User.Identity.GetFullName() ); } else { wdif.ApprovedDate = DateTime.Now.Date; _context.InergenTankDetails.Where(a => a.InergenTankHeaderId == item).ToList() .ForEach(a => a.NotedBy = User.Identity.GetFullName() ); } _context.Entry(wdif).State = EntityState.Modified; Log log = new Log { Descriptions = "Modified ITHeader, Id = " + item, Action = "Modify", Status = "Success", UserId = User.Identity.GetUserName(), CreatedDate = DateTime.Now }; _context.Add(log); _context.SaveChanges(); string stat = new NotifyController(_context).SendNotification(docstatus, equipmenttype, item); // send email } status = "success"; var modelit = new { status, message, }; return(Json(modelit)); case "bc": foreach (var item in id) { var wdif = _context.BicycleEntryHeaders.Find(item); wdif.DocumentStatus = docstatus; wdif.ApprovedDate = DateTime.Now.Date; _context.BicycleEntryDetails.Where(a => a.BicycleEntryHeaderId == item).ToList() .ForEach(a => a.NotedBy = User.Identity.GetFullName() ); _context.Entry(wdif).State = EntityState.Modified; Log log = new Log { Descriptions = "Modified BCHeader, Id = " + item, Action = "Modify", Status = "Success", UserId = User.Identity.GetUserName(), CreatedDate = DateTime.Now }; _context.Add(log); _context.SaveChanges(); string stat = new NotifyController(_context).SendNotification(docstatus, equipmenttype, item); // send email } status = "success"; var modelbc = new { status, message, }; return(Json(modelbc)); case "fh": foreach (var item in id) { var wdif = _context.FireHydrantHeaders.Find(item); wdif.DocumentStatus = docstatus; if (docstatus == "For Approval") { wdif.ReviewedDate = DateTime.Now.Date; _context.FireHydrantDetails.Where(a => a.FireHydrantHeaderId == item).ToList() .ForEach(a => a.ReviewedBy = User.Identity.GetFullName() ); } else { wdif.ApprovedDate = DateTime.Now.Date; _context.FireHydrantDetails.Where(a => a.FireHydrantHeaderId == item).ToList() .ForEach(a => a.NotedBy = User.Identity.GetFullName() ); } _context.Entry(wdif).State = EntityState.Modified; Log log = new Log { Descriptions = "Modified FHHeader, Id = " + item, Action = "Modify", Status = "Success", UserId = User.Identity.GetUserName(), CreatedDate = DateTime.Now }; _context.Add(log); _context.SaveChanges(); string stat = new NotifyController(_context).SendNotification(docstatus, equipmenttype, item); // send email } status = "success"; var modelfh = new { status, message, }; return(Json(modelfh)); default: return(null); } }