public ActionResult Update(ProjectViewModel pVm) { pVm.TargetDate = TimeZoneInfo.ConvertTime(pVm.TargetDate, TimeZoneInfo.Utc); if (pVm.File != null) { pVm.ImageName = pVm.File.FileName; _fileService.UploadFile(pVm); } var newProject = pVm.MapTo <Project>(_mapper); _projectDataContext.Update(newProject); var project = _projectDataContext.GetProject(pVm.Id); var tVm = pVm.Tasks.MapTo <ProjectLife.Model.Item>(_mapper); var taskToBeDeleted = new List <ProjectLife.Model.Item>(); var taskToBeAdded = new List <ProjectLife.Model.Item>(); foreach (var item in tVm) { if (!project.Tasks.Where(t => t.Id.Equals(item.Id)).Any()) { taskToBeAdded.Add(item); } } foreach (var item in project.Tasks) { if (!tVm.Where(t => t.Id.Equals(item.Id)).Any()) { taskToBeDeleted.Add(item); } } _taskDataContext.Delete(taskToBeDeleted); _taskDataContext.Add(taskToBeAdded); SendMail(pVm.Name); return(Json(Url.Action("Index", "Home"))); }