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));
            }
        }
Esempio n. 2
0
        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"));
 }
Esempio n. 4
0
        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));
            }
        }