public void Remove(Kafeel kafeel)
 {
     if (Context.Entry(kafeel).State == EntityState.Detached)
     {
         context.Kafeel.Attach(kafeel);
     }
     context.Kafeel.Remove(kafeel);
 }
Esempio n. 2
0
        public ActionResult UpdateKafeel(IEnumerable <KafeelViewModel> models, IEnumerable <OptionsViewModel> options)
        {
            var datasource = new DataSource <KafeelViewModel>();
            var result     = new List <Kafeel>();

            datasource.Data  = models;
            datasource.Total = models.Count();
            bool updateOnly = true;

            if (ModelState.IsValid)
            {
                if (ServerValidationEnabled)
                {
                    var errors = _hrUnitOfWork.CompanyRepository.Check(new CheckParm
                    {
                        CompanyId  = CompanyId,
                        ObjectName = "Kafeel",
                        Columns    = Models.Utils.GetModifiedRows(ModelState.Where(a => a.Key.Contains("models"))),
                        Culture    = Language
                    });

                    if (errors.Count() > 0)
                    {
                        datasource.Errors = errors;
                        return(Json(datasource));
                    }
                }
                var sequence = _hrUnitOfWork.Repository <Kafeel>().Select(a => a.Code).DefaultIfEmpty(0).Max();
                var MaxCode  = sequence == 0 ? 1 : sequence + 1;
                var ids      = models.Select(a => a.Id);
                var db_Kafel = _hrUnitOfWork.Repository <Kafeel>().Where(a => ids.Contains(a.Id)).ToList();
                for (var i = 0; i < models.Count(); i++)
                {
                    // Create
                    if (models.ElementAtOrDefault(i).Id == 0)
                    {
                        var kaf = new Kafeel();
                        AutoMapper(new AutoMapperParm()
                        {
                            ObjectName = "Kafeel", Destination = kaf, Source = models.ElementAtOrDefault(i), Version = 0, Options = options.ElementAtOrDefault(i), Transtype = TransType.Insert
                        });
                        updateOnly      = false;
                        kaf.CreatedUser = UserName;
                        kaf.CreatedTime = DateTime.Now;
                        kaf.Code        = MaxCode++;
                        result.Add(kaf);
                        _hrUnitOfWork.LookUpRepository.Add(kaf);
                    }

                    //Update
                    else
                    {
                        Kafeel kafeel = db_Kafel.FirstOrDefault(a => a.Id == models.ElementAtOrDefault(i).Id);
                        AutoMapper(new AutoMapperParm()
                        {
                            ObjectName = "Kafeel", Destination = kafeel, Source = models.ElementAtOrDefault(i), Version = 0, Options = options.ElementAtOrDefault(i), Transtype = TransType.Update
                        });

                        kafeel.ModifiedUser = UserName;
                        kafeel.ModifiedTime = DateTime.Now;
                        _hrUnitOfWork.LookUpRepository.Attach(kafeel);
                        _hrUnitOfWork.LookUpRepository.Entry(kafeel).State = EntityState.Modified;
                    }
                }
                datasource.Errors = SaveChanges(Language);
            }
            else
            {
                datasource.Errors = Models.Utils.ParseErrors(ModelState.Values);
            }

            if (updateOnly)
            {
                datasource.Data = models;
            }
            else
            {
                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 KafeelViewModel
                {
                    Id = (r == null ? 0 : r.Id),
                    Name = m.Name,
                    Email = m.Email,
                    Tel = m.Tel,
                    Address = m.Address,
                    Code = r.Code,
                    AddressId = m.AddressId,
                }).ToList();
            }

            if (datasource.Errors.Count() > 0)
            {
                return(Json(datasource));
            }
            else
            {
                return(Json(datasource.Data));
            }
        }
 public void Attach(Kafeel Kafeel)
 {
     context.Kafeel.Attach(Kafeel);
 }
 public DbEntityEntry <Kafeel> Entry(Kafeel Kafeel)
 {
     return(Context.Entry(Kafeel));
 }
 public void Add(Kafeel Kafeel)
 {
     context.Kafeel.Add(Kafeel);
 }