Exemple #1
0
        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));
        }
Exemple #2
0
        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);
            }
        }