Пример #1
0
        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")));
        }