public IActionResult EditTeamByCeo(int id) { Team team = context.Teams.FirstOrDefault(t => t.Id == id); Project project = null; if (team == null) { return(NotFound()); } EditTeamByCeoViewModel editTeamByCeoViewModel = new EditTeamByCeoViewModel { Id = team.Id, Name = team.Name, TeamLeadFirstName = null, TeamLeadLastName = null }; if (team.Project != null) { project = context.Projects.FirstOrDefault(p => p.Id == team.ProjectId); editTeamByCeoViewModel.ProjectName = project.Name; } else { editTeamByCeoViewModel.ProjectName = null; } ViewData["CreatedProjects"] = ProjectService.GetAllProjects(); ViewData["CreatedUsers"] = UserService.GetAllUsers(); CheckLoggedUser(); return(this.View(editTeamByCeoViewModel)); }
public IActionResult EditTeamByCeo(EditTeamByCeoViewModel model) { int result = TeamService.EditTeamByCeo(model); if (result > 0) { } else if (result <= 0) { if (result == 0) { ViewBag.Message = $"Such team name already exists!"; ViewData["CreatedProjects"] = ProjectService.GetAllProjects(); ViewData["CreatedUsers"] = UserService.GetAllUsers(); CheckLoggedUser(); return(View()); } else if (result == -1) { ViewBag.Message = $"Project does not exist!" + Environment.NewLine + $"First name does not exist!" + Environment.NewLine + $"Last name does not exist!"; ViewData["CreatedProjects"] = ProjectService.GetAllProjects(); ViewData["CreatedUsers"] = UserService.GetAllUsers(); CheckLoggedUser(); return(View()); } else if (result == -2) { ViewBag.Message = $"Project does not exist!" + Environment.NewLine + $"First name does not exist!"; ViewData["CreatedProjects"] = ProjectService.GetAllProjects(); ViewData["CreatedUsers"] = UserService.GetAllUsers(); CheckLoggedUser(); return(View()); } else if (result == -3) { ViewBag.Message = $"Project does not exist!" + Environment.NewLine + $"Last name does not exist!"; ViewData["CreatedProjects"] = ProjectService.GetAllProjects(); ViewData["CreatedUsers"] = UserService.GetAllUsers(); CheckLoggedUser(); return(View()); } else if (result == -4) { ViewBag.Message = $"Project does not exist!"; ViewData["CreatedProjects"] = ProjectService.GetAllProjects(); ViewData["CreatedUsers"] = UserService.GetAllUsers(); CheckLoggedUser(); return(View()); } else if (result == -5) { ViewBag.Message = $"First name does not exist!" + Environment.NewLine + $"Last name does not exist!"; ViewData["CreatedProjects"] = ProjectService.GetAllProjects(); ViewData["CreatedUsers"] = UserService.GetAllUsers(); CheckLoggedUser(); return(View()); } else if (result == -6) { ViewBag.Message = $"First name does not exist!"; ViewData["CreatedProjects"] = ProjectService.GetAllProjects(); ViewData["CreatedUsers"] = UserService.GetAllUsers(); CheckLoggedUser(); return(View()); } else if (result == -7) { ViewBag.Message = $"Last name does not exist!"; ViewData["CreatedProjects"] = ProjectService.GetAllProjects(); ViewData["CreatedUsers"] = UserService.GetAllUsers(); CheckLoggedUser(); return(View()); } else if (result == -8) { ViewBag.Message = $"This user already has a team!"; ViewData["CreatedProjects"] = ProjectService.GetAllProjects(); ViewData["CreatedUsers"] = UserService.GetAllUsers(); CheckLoggedUser(); return(View()); } else if (result == -9) { ViewBag.Message = $"There is no user with this combination of first and last names!"; ViewData["CreatedProjects"] = ProjectService.GetAllProjects(); ViewData["CreatedUsers"] = UserService.GetAllUsers(); CheckLoggedUser(); return(View()); } } ViewData["AllCreatedTeams"] = TeamService.GetAllTeams(); CheckLoggedUser(); return(RedirectToAction("ViewAllCreatedTeams", "Team")); }
/// <summary> /// This method is used when the CEO edits a given team. /// </summary> /// <param name="model"></param> /// <returns></returns> public int EditTeamByCeo(EditTeamByCeoViewModel model) { //Taking the correct team which is to be edited and the project associated with it. Team takenTeam = context.Teams.FirstOrDefault(t => t.Id == model.Id); Project takenProject = context.Projects.FirstOrDefault(p => p.Id == takenTeam.ProjectId); //Validating the new team information //If one of the properties are not edited, the validation it is skipped and vice versa. bool takenProjectInfo = context.Projects.FirstOrDefault(p => p.Name == model.ProjectName) == null; bool takenUserFirstNameInfo = context.Users.FirstOrDefault(u => u.FirstName == model.TeamLeadFirstName) == null; bool takenUserLastNameInfo = context.Users.FirstOrDefault(u => u.LastName == model.TeamLeadLastName) == null; bool takenTemaInfo = context.Teams.FirstOrDefault(t => t.Name == model.Name) != null; if (takenTeam.Project != null) { if (!(takenTeam.Name == model.Name || takenProject.Name == model.ProjectName)) { int validationResult = ValidateData(takenProjectInfo, takenUserFirstNameInfo, takenUserLastNameInfo, takenTemaInfo); if (validationResult <= 0) { return(validationResult); } } } else { if (!(takenTeam.Name == model.Name)) { int validationResult = ValidateData(takenProjectInfo, takenUserFirstNameInfo, takenUserLastNameInfo, takenTemaInfo); if (validationResult <= 0) { return(validationResult); } } } //Taking the correct project based on the given projectname. takenProject = context.Projects.FirstOrDefault(p => p.Name == model.ProjectName); //Taking the cunnet team lead of the team base on the database //and the new team lead based on the given information in the method parameters. User teamLead = context.Users.FirstOrDefault(u => u.FirstName == model.TeamLeadFirstName && u.LastName == model.TeamLeadLastName); User pastTeamLead = context.Users.FirstOrDefault(u => u.TeamId == takenTeam.Id && u.Role == "Team Lead"); //if the the team has already a team lead //The team lead is removed from the team. if (pastTeamLead != null && pastTeamLead != teamLead) { pastTeamLead.Team = null; pastTeamLead.TeamId = null; takenTeam.Users.Remove(pastTeamLead); } //if the new team lead exists as a user in the database //he is appointed as the new team lead of the team. if (teamLead != null) { //Checking if the new team lead already has a team. //If true, the user is asked to select another team lead. bool isTeamLeadValid = teamLead.TeamId != takenTeam.Id; if (teamLead.TeamId != null && isTeamLeadValid) { return(-8); } //If the new team lead does not have a team //he is appointed as the new team lead of the team. if (isTeamLeadValid) { teamLead.TeamId = takenTeam.Id; teamLead.Team = takenTeam; takenTeam.Users.Add(teamLead); context.Users.Update(teamLead); } takenTeam.Name = model.Name; //If the team is already working on a project, the method only edits the team. //Otherwise, the method edits the project list of teams whith adding the the team wich is //edited in the list of teams and edits the team itself if (takenTeam.Project == null) { takenProject.Teams.Add(takenTeam); takenTeam.ProjectId = takenProject.Id; takenTeam.Project = takenProject; context.Projects.Update(takenProject); } else if (takenTeam.Project != takenProject) { takenTeam.ProjectId = takenProject.Id; takenTeam.Project = takenProject; } //Saving the changes in the database. context.Teams.Update(takenTeam); context.SaveChanges(); return(takenTeam.Id); } else { return(-9); } }
public int EditTeamByCeo(EditTeamByCeoViewModel model) { Team takenTeam = context.Teams.FirstOrDefault(t => t.Id == model.Id); Project takenProject = context.Projects.FirstOrDefault(p => p.Id == takenTeam.ProjectId); bool takenProjectInfo = context.Projects.FirstOrDefault(p => p.Name == model.ProjectName) == null; bool takenUserFirstNameInfo = context.Users.FirstOrDefault(u => u.FirstName == model.TeamLeadFirstName) == null; bool takenUserLastNameInfo = context.Users.FirstOrDefault(u => u.LastName == model.TeamLeadLastName) == null; bool takenTemaInfo = context.Teams.FirstOrDefault(t => t.Name == model.Name) != null; if (takenTeam.Project != null) { if (!(takenTeam.Name == model.Name || takenProject.Name == model.ProjectName)) { int validationResult = ValidateData(takenProjectInfo, takenUserFirstNameInfo, takenUserLastNameInfo, takenTemaInfo); if (validationResult <= 0) { return(validationResult); } } } else { if (!(takenTeam.Name == model.Name)) { int validationResult = ValidateData(takenProjectInfo, takenUserFirstNameInfo, takenUserLastNameInfo, takenTemaInfo); if (validationResult <= 0) { return(validationResult); } } } takenProject = context.Projects.FirstOrDefault(p => p.Name == model.ProjectName); User teamLead = context.Users.FirstOrDefault(u => u.FirstName == model.TeamLeadFirstName && u.LastName == model.TeamLeadLastName); User pastTeamLead = context.Users.FirstOrDefault(u => u.TeamId == takenTeam.Id && u.Role == "Team Lead"); if (pastTeamLead != null && pastTeamLead != teamLead) { pastTeamLead.Team = null; pastTeamLead.TeamId = null; takenTeam.Users.Remove(pastTeamLead); } if (teamLead != null) { bool isTeamLeadValid = teamLead.TeamId != takenTeam.Id; if (teamLead.TeamId != null && isTeamLeadValid) { return(-8); } if (isTeamLeadValid) { teamLead.TeamId = takenTeam.Id; teamLead.Team = takenTeam; takenTeam.Users.Add(teamLead); context.Users.Update(teamLead); } takenTeam.Name = model.Name; if (takenTeam.Project == null) { takenProject.Teams.Add(takenTeam); takenTeam.ProjectId = takenProject.Id; takenTeam.Project = takenProject; context.Projects.Update(takenProject); } else if (takenTeam.Project != takenProject) { takenTeam.ProjectId = takenProject.Id; takenTeam.Project = takenProject; } context.Teams.Update(takenTeam); context.SaveChanges(); return(takenTeam.Id); } else { return(-9); } }