public ActionResult EditData(FireExtinguisherViewModel[] item)
        {
            string status  = "success";
            string message = "";

            try
            {
                int headerId = item[0].ID;

                foreach (var detail in item)
                {
                    var d = _context.FireExtinguisherDetails
                            .Where(a => a.FireExtinguisherHeaderId == headerId)
                            .Where(a => a.ItemId == detail.ItemId)
                            .FirstOrDefault();

                    if (d == null)
                    {
                        var _detail = new FireExtinguisherDetail
                        {
                            ItemId     = detail.ItemId,
                            Cylinder   = Convert.ToInt32(detail.Cylinder),
                            Lever      = Convert.ToInt32(detail.Lever),
                            Gauge      = Convert.ToInt32(detail.Gauge),
                            SafetySeal = Convert.ToInt32(detail.SafetySeal),
                            Hose       = Convert.ToInt32(detail.Hose),
                            CreatedAt  = DateTime.Now.Date,
                            UpdatedAt  = DateTime.Now,
                            FireExtinguisherHeaderId = headerId,
                            Remarks = detail.Remarks,
                            //InspectedBy = detail.InspectedBy,
                            //ReviewedBy = detail.ReviewedBy,
                            //NotedBy = detail.NotedBy
                        };

                        _context.Add(_detail);
                    }
                    else
                    {
                        d.Cylinder   = Convert.ToInt32(detail.Cylinder);
                        d.Lever      = Convert.ToInt32(detail.Lever);
                        d.Gauge      = Convert.ToInt32(detail.Gauge);
                        d.SafetySeal = Convert.ToInt32(detail.SafetySeal);
                        d.Hose       = Convert.ToInt32(detail.Hose);
                        d.UpdatedAt  = DateTime.Now;
                        d.UpdatedBy  = User.Identity.GetUserName();
                        d.FireExtinguisherHeaderId = headerId;
                        d.Remarks = detail.Remarks;
                        //d.InspectedBy = detail.InspectedBy;
                        //d.ReviewedBy = detail.ReviewedBy;
                        //d.NotedBy = detail.NotedBy;
                        _context.Update(d);
                    }
                    _context.SaveChanges();
                }
                status = "success";
            }
            catch (Exception e)
            {
                status  = "fail";
                message = e.InnerException.Message;
            }


            var model = new
            {
                status
                ,
                message
            };

            return(Json(model));
        }
        public IActionResult SaveData(FireExtinguisherViewModel[] item)
        {
            string series = "";
            string refno  = "";


            int    headerId = 0;
            string status   = "";
            string message  = "";

            try
            {
                var _header = _context.FireExtinguisherHeaders
                              .Where(a => a.AreaId == item[0].AreaId)
                              .Where(a => a.Status == "Active")
                              .Where(a => a.DocumentStatus != "Approved");

                if (_header.Count() == 0)
                {
                    var comp = _context.LocationFireExtinguishers.Include(a => a.Areas.Companies).Where(a => a.Id == item[0]
                                                                                                        .LocationFireExtinguisherId)
                               .FirstOrDefault()
                               .Areas.Companies.Code;

                    if (comp == "SCPC")
                    {
                        comp = "SC";
                    }
                    else
                    {
                        comp = "SL";
                    }
                    string series_code = comp + "FIREEXTINGUISHER";
                    series = new NoSeriesController(_context).GetNoSeries(series_code);
                    refno  = comp + "FE" + series;


                    FireExtinguisherHeader header = new FireExtinguisherHeader
                    {
                        ReferenceNo = refno,
                        AreaId      = item[0].AreaId,
                        CreatedAt   = DateTime.Now.Date,
                        CreatedBy   = User.Identity.GetFullName()
                    };

                    _context.Add(header);
                    _context.SaveChanges();
                    string x = new NoSeriesController(_context).UpdateNoSeries(series, series_code);

                    headerId = header.Id;

                    foreach (var detail in item)
                    {
                        var _detail = new FireExtinguisherDetail
                        {
                            ItemId     = detail.ItemId,
                            Cylinder   = Convert.ToInt32(detail.Cylinder),
                            Lever      = Convert.ToInt32(detail.Lever),
                            Gauge      = Convert.ToInt32(detail.Gauge),
                            SafetySeal = Convert.ToInt32(detail.SafetySeal),
                            Hose       = Convert.ToInt32(detail.Hose),
                            CreatedAt  = DateTime.Now.Date,
                            UpdatedAt  = DateTime.Now.Date,
                            FireExtinguisherHeaderId = headerId,
                            Remarks     = detail.Remarks,
                            InspectedBy = detail.InspectedBy,
                            ReviewedBy  = detail.ReviewedBy,
                            NotedBy     = detail.NotedBy,
                            LocationFireExtinguisherId = detail.LocationFireExtinguisherId
                        };

                        _context.Add(_detail);
                    }
                }
                else
                {
                    headerId = _header.FirstOrDefault().Id;

                    foreach (var detail in item)
                    {
                        var d = _context.FireExtinguisherDetails
                                .Where(a => a.FireExtinguisherHeaderId == headerId)
                                .Where(a => a.LocationFireExtinguisherId == item[0].LocationFireExtinguisherId)
                                .Where(a => a.ItemId == detail.ItemId)
                                .FirstOrDefault();

                        if (d == null)
                        {
                            var _detail = new FireExtinguisherDetail
                            {
                                ItemId     = detail.ItemId,
                                Cylinder   = Convert.ToInt32(detail.Cylinder),
                                Lever      = Convert.ToInt32(detail.Lever),
                                Gauge      = Convert.ToInt32(detail.Gauge),
                                SafetySeal = Convert.ToInt32(detail.SafetySeal),
                                Hose       = Convert.ToInt32(detail.Hose),
                                CreatedAt  = DateTime.Now.Date,
                                UpdatedAt  = DateTime.Now.Date,
                                FireExtinguisherHeaderId = headerId,
                                Remarks     = detail.Remarks,
                                InspectedBy = detail.InspectedBy,
                                ReviewedBy  = detail.ReviewedBy,
                                NotedBy     = detail.NotedBy,
                                LocationFireExtinguisherId = detail.LocationFireExtinguisherId
                            };

                            _context.Add(_detail);
                        }
                        else
                        {
                            d.Cylinder   = Convert.ToInt32(detail.Cylinder);
                            d.Lever      = Convert.ToInt32(detail.Lever);
                            d.Gauge      = Convert.ToInt32(detail.Gauge);
                            d.SafetySeal = Convert.ToInt32(detail.SafetySeal);
                            d.Hose       = Convert.ToInt32(detail.Hose);
                            d.UpdatedAt  = DateTime.Now;
                            d.UpdatedBy  = User.Identity.GetUserName();
                            d.FireExtinguisherHeaderId = headerId;
                            d.Remarks     = detail.Remarks;
                            d.InspectedBy = detail.InspectedBy;
                            d.ReviewedBy  = detail.ReviewedBy;
                            d.NotedBy     = detail.NotedBy;
                            d.LocationFireExtinguisherId = detail.LocationFireExtinguisherId;
                            _context.Update(d);
                        }
                        _context.SaveChanges();
                    }
                }



                _context.SaveChanges();
                status = "success";
            }
            catch (Exception ex)
            {
                status  = "failed";
                message = ex.InnerException.Message;
            }



            var model = new
            {
                status
                , message
                , ReferenceId = headerId
            };

            return(Json(model));
        }