public ActionResult EditProject(int id) { if (accountInProjectsRepository.GetById(id) != null) { AccountInProjectEntity projectEntity = this.accountInProjectsRepository.GetById(id); IEnumerable <AccountEntity> allAccountEntity = this.accountsRepository.GetAll(); IEnumerable <TaskEntity> allTaskEntity = this.tasksRepository.GetAll(); IEnumerable <RoleEntity> roleByProjectEntity = this.rolesRepository.GetAll(); var model = new ManageProjectManagementModel { Id = projectEntity.Project.Id, ProjectName = projectEntity.Project.Name, Description = projectEntity.Project.Description, Task = allTaskEntity.Select(taskEntity => new TaskEntity { Id = taskEntity.Id, Title = taskEntity.Title, Description = taskEntity.Description, Project = taskEntity.Project }), TeamMember = allAccountEntity.Select(accountEntity => new AccountEntity { Id = accountEntity.Id, Name = accountEntity.Name, MiddleName = accountEntity.MiddleName, Surname = accountEntity.Surname, Email = accountEntity.Email, Login = accountEntity.Login, Password = accountEntity.Password, AccessLevel = accountEntity.AccessLevel }), Role = roleByProjectEntity.Select(roleEntity => new RoleEntity { Id = roleEntity.Id, Name = roleEntity.Name, }) }; return(View("EditProject", model)); } else { //если это новый ид (добавление нового проекта) AccountInProjectEntity projectEntity = this.accountInProjectsRepository.GetById(id); IEnumerable <AccountEntity> allAccountEntity = this.accountsRepository.GetAll(); IEnumerable <TaskEntity> allTaskEntity = this.tasksRepository.GetAll(); IEnumerable <RoleEntity> roleByProjectEntity = this.rolesRepository.GetAll(); var newProjectModel = new ManageProjectManagementModel { Id = id, ProjectName = "", Description = "", Task = allTaskEntity.Select(taskEntity => new TaskEntity { Id = taskEntity.Id, Title = taskEntity.Title, Description = taskEntity.Description, Project = taskEntity.Project }), TeamMember = allAccountEntity.Select(accountEntity => new AccountEntity { Id = accountEntity.Id, Name = accountEntity.Name, MiddleName = accountEntity.MiddleName, Surname = accountEntity.Surname, Email = accountEntity.Email, Login = accountEntity.Login, Password = accountEntity.Password, AccessLevel = accountEntity.AccessLevel }), Role = roleByProjectEntity.Select(roleEntity => new RoleEntity { Id = roleEntity.Id, Name = roleEntity.Name, }) }; return(View("EditProject", newProjectModel)); } }
public async Task <RedirectToRouteResult> UpdateProject(ManageProjectManagementModel model, List <string> idTasks, List <string> idTeamMember, List <string> idRoleInProject) { var projects = await unitOfWork.ProjectRepository.GetByID(model.ProjectId); if (projects == null) { IEnumerable <AccountEntity> allAccountEntity = await unitOfWork.AccountRepository.GetAll(); IEnumerable <TaskEntity> allTaskEntity = await unitOfWork.TaskRepository.GetAll(); IEnumerable <RoleEntity> roleByProjectEntity = await unitOfWork.RoleRepository.GetAll(); ProjectEntity projectEntity = new ProjectEntity(); projectEntity.ProjectId = model.ProjectId; projectEntity.Name = model.ProjectName; projectEntity.Description = model.Description; IList <TaskEntity> tasksInProject = new List <TaskEntity>(); IList <Teammate> teammatesInProject = new List <Teammate>(); foreach (var task in idTasks) { tasksInProject.Add(new TaskEntity { TaskId = allTaskEntity.Count() + 1, Title = allTasks.FirstOrDefault(m => m.Key == int.Parse(task)).Value, ProjectId = model.ProjectId }); } int i = 0; foreach (var teammate in idTeamMember) { teammatesInProject.Add(new Teammate { AccountId = int.Parse(teammate), ProjectId = model.ProjectId, RoleId = int.Parse(idRoleInProject[i++]) }); } projectEntity.Tasks = tasksInProject; projectEntity.Teammates = teammatesInProject; unitOfWork.ProjectRepository.Insert(projectEntity); unitOfWork.Save(); } else { IEnumerable <AccountEntity> allAccountEntity = await unitOfWork.AccountRepository.GetAll(); IEnumerable <TaskEntity> allTaskEntity = await unitOfWork.TaskRepository.GetAll(); IEnumerable <RoleEntity> roleByProjectEntity = await unitOfWork.RoleRepository.GetAll(); ProjectEntity projectEntity = await unitOfWork.ProjectRepository.GetByID(model.ProjectId); projectEntity.ProjectId = model.ProjectId; projectEntity.Name = model.ProjectName; projectEntity.Description = model.Description; if (idTasks != null) { for (int j = 0; j < projectEntity.Tasks.Count; j++) { if (idTasks.FirstOrDefault(m => int.Parse(m) == projectEntity.Tasks.ElementAt(j).TaskId) == null) { unitOfWork.TaskRepository.Delete(projectEntity.Tasks.ElementAt(j)); unitOfWork.Save(); } } foreach (var task in idTasks) { if (projectEntity.Tasks.FirstOrDefault(m => m.TaskId == int.Parse(task)) == null) { projectEntity.Tasks.Add(new TaskEntity { TaskId = allTaskEntity.Last().TaskId + 1, Title = allTasks.FirstOrDefault(m => m.Key == int.Parse(task)).Value, ProjectId = model.ProjectId, Description = "" }); } } } else { for (int j = 0; j < projectEntity.Tasks.Count; j++) { unitOfWork.TaskRepository.Delete(projectEntity.Tasks.ElementAt(j)); unitOfWork.Save(); } } if (idTeamMember != null) { for (int j = 0; j < projectEntity.Teammates.Count; j++) { if (idTeamMember.FirstOrDefault(m => int.Parse(m) == projectEntity.Teammates.ElementAt(j).AccountId) == null) { projectEntity.Teammates.Remove(projectEntity.Teammates.ElementAt(j)); } } int i = 0; foreach (var teammate in idTeamMember) { var proj = await unitOfWork.ProjectRepository.GetAll(); if (proj.FirstOrDefault(x => x.ProjectId == model.ProjectId).Teammates.FirstOrDefault(m => m.AccountId == int.Parse(teammate)) == null) { projectEntity.Teammates.Add(new Teammate { AccountId = int.Parse(teammate), ProjectId = model.ProjectId, RoleId = int.Parse(idRoleInProject[i]), Account = await unitOfWork.AccountRepository.GetByID(int.Parse(teammate)), Project = await unitOfWork.ProjectRepository.GetByID(model.ProjectId), Role = await unitOfWork.RoleRepository.GetByID(int.Parse(idRoleInProject[i++])) }); } } } else { for (int j = 0; j < projectEntity.Teammates.Count; j++) { projectEntity.Teammates.Remove(projectEntity.Teammates.ElementAt(j)); } } unitOfWork.ProjectRepository.Update(projectEntity); unitOfWork.Save(); } return(RedirectToAction("Index")); }
public RedirectToRouteResult UpdateProject(ManageProjectManagementModel model) { return(RedirectToAction("Index")); }
public async Task <ActionResult> EditProject(int id) { var projects = await unitOfWork.ProjectRepository.GetByID(id); if (projects != null) { ProjectEntity projectEntity = await unitOfWork.ProjectRepository.GetByID(id); IEnumerable <AccountEntity> allAccountEntity = await unitOfWork.AccountRepository.GetAll(); IEnumerable <TaskEntity> allTaskEntity = await unitOfWork.TaskRepository.GetAll(); IEnumerable <RoleEntity> roleByProjectEntity = await unitOfWork.RoleRepository.GetAll(); IEnumerable <Teammate> teammatesInProject = projectEntity.Teammates; IList <TaskEntity> tasksInProject = new List <TaskEntity>(); foreach (var task in allTaskEntity) { if (task.ProjectId == projectEntity.ProjectId) { tasksInProject.Add( new TaskEntity { TaskId = task.TaskId, Title = task.Title, ProjectId = task.ProjectId, Description = task.Description }); } } var model = new ManageProjectManagementModel { ProjectId = projectEntity.ProjectId, ProjectName = projectEntity.Name, Description = projectEntity.Description, Task = allTasks.Select(taskEntity => new TaskEntity { TaskId = taskEntity.Key, Title = taskEntity.Value, }), TasksInProject = tasksInProject, TeamMember = teammatesInProject.Select(accountEntity => new AccountEntity { AccountId = accountEntity.AccountId, Name = accountEntity.Account.Name, Surname = accountEntity.Account.Surname }), Role = teammatesInProject.Select(roleEntity => new RoleEntity { RoleId = roleEntity.RoleId, Name = roleEntity.Role.Name, }), TeammatesInProject = teammatesInProject }; return(View("EditProject", model)); } else { //если это новый ид (добавление нового проекта) ProjectEntity projectEntity = await unitOfWork.ProjectRepository.GetByID(id); IEnumerable <AccountEntity> allAccountEntity = await unitOfWork.AccountRepository.GetAll(); IEnumerable <TaskEntity> allTaskEntity = await unitOfWork.TaskRepository.GetAll(); IEnumerable <RoleEntity> roleByProjectEntity = await unitOfWork.RoleRepository.GetAll(); var newProjectModel = new ManageProjectManagementModel { ProjectId = id, ProjectName = "", Description = "", Task = allTasks.Select(taskEntity => new TaskEntity { TaskId = taskEntity.Key, Title = taskEntity.Value, }), TeamMember = allAccountEntity.Select(accountEntity => new AccountEntity { AccountId = accountEntity.AccountId, Name = accountEntity.Name, Surname = accountEntity.Surname }), Role = roleByProjectEntity.Select(roleEntity => new RoleEntity { RoleId = roleEntity.RoleId, Name = roleEntity.Name, }) }; return(View("EditProject", newProjectModel)); } }