public void Remove(BenefitServ benefitServ)
 {
     if (Context.Entry(benefitServ).State == EntityState.Detached)
     {
         context.BenefitServs.Attach(benefitServ);
     }
     context.BenefitServs.Remove(benefitServ);
 }
 public DbEntityEntry <BenefitServ> Entry(BenefitServ benefitServ)
 {
     return(Context.Entry(benefitServ));
 }
 public void Add(BenefitServ benefitServ)
 {
     context.BenefitServs.Add(benefitServ);
 }
 public void Attach(BenefitServ benefitServ)
 {
     context.BenefitServs.Attach(benefitServ);
 }
        public ActionResult CreateBenefitServ(IEnumerable <BenfitServiceViewModel> models, bool IsGroup, OptionsViewModel moreInfo)
        {
            var result     = new List <BenefitServ>();
            var datasource = new DataSource <BenfitServiceViewModel>();

            datasource.Data  = models;
            datasource.Total = models.Count();
            if (ModelState.IsValid)
            {
                if (ServerValidationEnabled)
                {
                    var errors = _hrUnitOfWork.CompanyRepository.Check(new CheckParm
                    {
                        CompanyId  = CompanyId,
                        ObjectName = "BenefitServ",
                        Columns    = Models.Utils.GetModifiedRows(ModelState),
                        Culture    = Language
                    });
                    if (errors.Count() > 0)
                    {
                        datasource.Errors = errors;
                        return(Json(datasource));
                    }
                }
                var sequence = _hrUnitOfWork.Repository <BenefitServ>().Select(a => a.Code).DefaultIfEmpty(0).Max();
                var MaxCode  = sequence == 0 ? 1 : sequence + 1;
                foreach (BenfitServiceViewModel model in models)
                {
                    var benfitSer = new BenefitServ();
                    AutoMapper(new Models.AutoMapperParm
                    {
                        Destination = benfitSer,
                        Source      = model,
                        ObjectName  = "BenefitServ",
                        Options     = moreInfo,
                        Transtype   = TransType.Insert
                    });
                    benfitSer.IsGroup = IsGroup;
                    benfitSer.Code    = MaxCode++;
                    if (benfitSer.ParentId != null)
                    {
                        benfitSer.BenefitId = _hrUnitOfWork.Repository <BenefitServ>().FirstOrDefault(a => a.Id == model.ParentId.GetValueOrDefault()).BenefitId;
                    }
                    result.Add(benfitSer);
                    _hrUnitOfWork.BenefitsRepository.Add(benfitSer);
                }
                datasource.Errors = SaveChanges(Language);
                datasource.Data   = (from m in models
                                     join r in result on m.Name equals r.Name into g
                                     from r in g.DefaultIfEmpty()
                                     select new BenfitServiceViewModel
                {
                    Id = (r == null ? 0 : r.Id),
                    Name = m.Name,
                    Code = r.Code,
                    EmpPercent = m.EmpPercent,
                    CompPercent = m.CompPercent,
                    EndDate = m.EndDate,
                    StartDate = m.StartDate,
                    IsGroup = m.IsGroup,
                    ParentId = m.ParentId,
                    Cost = m.Cost,
                    Curr = m.Curr,
                    BenefitId = r.BenefitId
                }).ToList();
            }
            else
            {
                datasource.Errors = Models.Utils.ParseErrors(ModelState.Values);
            }
            if (datasource.Errors.Count() > 0)
            {
                return(Json(datasource));
            }
            else
            {
                return(Json(datasource.Data));
            }
        }