public ActionResult Edit(int id = 0)
 {
     try
     {
         var certGrade = _unitOfWork.PaidDataRepository.GetByID(id);
         if (certGrade == null)
         {
             return(HttpNotFound());
         }
         var model = new PaidDataModel
         {
             Entity           = certGrade,
             OrgLookUp        = LookUps.OrganisationById(certGrade.OrgID ?? 0),
             CobLookUp        = LookUps.ClassOfBusiness(),
             TypeOfLossLookUp = LookUps.TypeOfLoss(),
             OrgId            = certGrade.OrgID ?? 0
         };
         return(View(model));
     }
     catch (Exception ex)
     {
         // Log with Elmah
         Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
         TempData["message"] = Settings.Default.GenericExceptionMessage;
         return(RedirectToAction("Index", "Home", new { area = "Admin" }));
     }
 }
        public ActionResult Create(int orgId)
        {
            var model = new PaidDataModel
            {
                Entity           = new PaidData(),
                OrgLookUp        = LookUps.OrganisationById(orgId),
                CobLookUp        = LookUps.ClassOfBusiness(),
                TypeOfLossLookUp = LookUps.TypeOfLoss(),
                OrgId            = orgId
            };

            return(View(model));
        }
        public ActionResult Index([DefaultValue(1)] int page, string keywords, [DefaultValue(10)] int pgsize)
        {
            try
            {
                var orgId = LookUps.GetOrgId(User.Identity.Name);
                if (orgId == 0)
                {
                    orgId = Settings.Default.DefaultOrgId;
                }

                List <PaidData> rowsToShow;
                int             totalRecords;


                if (!string.IsNullOrEmpty(keywords))
                {
                    rowsToShow   = _unitOfWork.PaidDataRepository.Get(filter: x => x.OrgID == orgId && x.Organisation.Name.ToUpper().Contains(keywords.Trim().ToUpper()) || x.ClaimNo.ToUpper().Contains(keywords.Trim().ToUpper()) || x.PolicyNo.ToUpper().Contains(keywords.Trim().ToUpper()), orderBy: q => q.OrderBy(x => x.ID)).Skip((page - 1) * pgsize).Take(pgsize).ToList();
                    totalRecords = _unitOfWork.PaidDataRepository.Get(filter: x => x.OrgID == orgId && x.Organisation.Name.ToUpper().Contains(keywords.Trim().ToUpper()) || x.ClaimNo.ToUpper().Contains(keywords.Trim().ToUpper()) || x.PolicyNo.ToUpper().Contains(keywords.Trim().ToUpper())).Count();
                }
                else
                {
                    rowsToShow   = _unitOfWork.PaidDataRepository.Get(filter: x => x.OrgID == orgId, orderBy: q => q.OrderBy(x => x.ID)).Skip((page - 1) * pgsize).Take(pgsize).ToList();
                    totalRecords = _unitOfWork.PaidDataRepository.Get(filter: x => x.OrgID == orgId, orderBy: q => q.OrderBy(x => x.ID)).Count();
                }

                var model = new PaidDataModel()
                {
                    Rows       = rowsToShow,
                    OrgId      = orgId,
                    PagingInfo = new PagingInfo
                    {
                        FirstItem    = ((page - 1) * pgsize) + 1,
                        LastItem     = page * pgsize,
                        CurrentPage  = page,
                        ItemsPerPage = pgsize,
                        TotalItems   = totalRecords
                    },
                    CurrentKeywords = keywords,
                    PageSize        = pgsize
                };
                return(View(model));
            }
            catch (Exception ex)
            {
                // Log with Elmah
                Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
                TempData["message"] = Settings.Default.GenericExceptionMessage;
                return(RedirectToAction("Index", "Home", new { area = "Admin" }));
            }
        }
        public ActionResult Create(PaidDataModel model)
        {
            try
            {
                if (ClaimExist(model.Entity.OrgID ?? 0, model.Entity.ClaimNo, model.Entity.ID))
                {
                    ModelState.AddModelError("", "Claim Number Already Exist");
                }

                if (ModelState.IsValid)
                {
                    var certGrade = model.Entity;
                    certGrade.ModifiedBy   = User.Identity.Name;
                    certGrade.ModifiedDate = DateTime.Now;
                    certGrade.CreatedBy    = User.Identity.Name;
                    certGrade.CreatedDate  = DateTime.Now;

                    //calcualte dev period
                    certGrade.LossYear  = certGrade.DateOfLoss.GetValueOrDefault().Year;
                    certGrade.PaidYear  = certGrade.DateOfPayment.GetValueOrDefault().Year;
                    certGrade.DevPeriod = certGrade.PaidYear - certGrade.LossYear;

                    _unitOfWork.PaidDataRepository.Insert(certGrade);
                    _unitOfWork.Save();
                    TempData["message"] = "<b>" + certGrade.ClaimNo + "</b> was successfully created";
                    return(RedirectToAction("Index", new { orgid = model.Entity.OrgID }));
                }
                model.OrgLookUp        = LookUps.OrganisationById(model.Entity.OrgID ?? 0);
                model.CobLookUp        = LookUps.ClassOfBusiness();
                model.TypeOfLossLookUp = LookUps.TypeOfLoss();
                return(View(model));
            }
            catch (Exception ex)
            {
                // Log with Elmah
                Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
                TempData["message"] = Settings.Default.GenericExceptionMessage;
                return(RedirectToAction("Index", "Home", new { area = "Admin" }));
            }
        }