Exemple #1
0
        public ActionResult Edit([FromJson] IEnumerable <DependentViewModel> dependents,
                                 [FromJson] IEnumerable <DependentViewModel> removed, Employee Employee)
        {
            if (dependents != null || removed != null)
            {
                foreach (DependentViewModel dep in dependents)
                {
                    if (!repository.FindDependents(Employee.Id).Any(d => d.Name == dep.Name && d.Age == dep.Age))
                    {
                        repository.AddDependent(new Dependent()
                        {
                            EmployeeID = dep.EmployeeID,
                            Name       = dep.Name,
                            Age        = dep.Age,
                            Relation   = dep.Relation
                        });
                    }
                }

                foreach (DependentViewModel dep in removed)
                {
                    var deleteThis = repository.FindDependents(Employee.Id).First(d => d.Name == dep.Name && d.Age == dep.Age);
                    //context.Entry(deleteThis).State = System.Data.EntityState.Deleted;
                    repository.RemoveDependent(deleteThis);
                }

                repository.Save();
                Employee employee = repository.FindById(Employee.Id);

                return(View(employee));
            }
            else if (ModelState.IsValid)
            {
                repository.Update(Employee);
                repository.Save();
            }

            return(RedirectToAction("Index"));
        }