public HomeController(VacantionContext context, UserManager <User> userManager, SignInManager <User> signInManager, RoleManager <Role> roleManager) { _context = context; _userManager = userManager; _signInManager = signInManager; _roleManager = roleManager; foreach (var role in roles) { if (!_roleManager.Roles.Any(x => x.Name == role)) { _context.Add(new Role() { Name = role, NormalizedName = role.ToUpper() }); _context.SaveChanges(); } } if (!_context.Teams.Any(x => x.TeamName == "-")) { _context.Add(new Team() { TeamName = "-" }); _context.SaveChanges(); } }
public async Task <IActionResult> Approve(int id) { Vacantion vacation = await _context.Vacantions.FirstAsync(u => u.Id == id); vacation.IsApproved = true; vacation.IsPending = false; _context.SaveChanges(); return(RedirectToAction(nameof(ApproveRequests))); }
public IActionResult Create(ProjectsCreateViewModel model) { if (ModelState.IsValid) { Project newProject = new Project { ProjectName = model.ProjectName, Description = model.Description }; _context.Add(newProject); _context.SaveChanges(); return(RedirectToAction(nameof(Index))); } return(View(model)); }
public async Task <IActionResult> Create(TeamsCreateViewModel model) { if (ModelState.IsValid) { User currentUser = await GetCurrentUser(); Team newTeam = new Team { //TeamName = model.TeamName, WorkingOnProject = _context.Projects.First(t => t.ProjectName == model.WorkingOnProject), //Developers = model.Developers.ToList(); }; if (_context.Teams.Any(x => x.TeamName == model.TeamName)) { ModelState.AddModelError($"TeamName", "Team with such name exists already."); } else { newTeam.TeamName = model.TeamName; } try { string[] names = model.Leader.Split(); newTeam.Leader = _context.Users .Include(u => u.Role) .First(u => u.FirstName == names.First() && u.LastName == names.Last()); if (newTeam.Leader.Role.Name == "Team Lead") { ModelState.AddModelError("Leader", "This user is already a leader of an existing team."); } else if (newTeam.Leader.Role.Name == "CEO") { ModelState.AddModelError("Leader", "This is the CEO."); } else { newTeam.Leader.Role = _context.Roles.First(r => r.Name == "Team Lead"); newTeam.Leader.Team = newTeam; } } catch { ModelState.AddModelError("Leader", "No such user."); } var developers = model.Developers.Where(c => c != null).ToArray(); model.BoxesToShow = developers.Count() < 2 ? 2 : developers.Count(); bool mark = false; if (developers.Count() < 2) { ModelState.AddModelError("Developers", "Team must have at least two members exept the Leader."); mark = true; } bool duplicates = false; if (developers.Count() != developers.Distinct().Count()) { duplicates = true; } for (int i = 0; i < developers.Count(); i++) { if (duplicates) { for (int j = i + 1; j < developers.Count(); j++) { if (developers[j] == developers[i]) { ModelState.AddModelError($"Developers[{j}]", "Already taken in above choices."); break; } } } string[] names = developers[i].Split(); if (_context.Users.Any(u => u.FirstName == names.First() && u.LastName == names.Last())) { User member = _context.Users .Include(u => u.Role) .First(u => u.FirstName == names[0] && u.LastName == names[1]); if (member == newTeam.Leader) { ModelState.AddModelError($"Developers[{i}]", "This user is Team Leader of this team."); } else if (member.Role.Name == "Team Lead") { ModelState.AddModelError($"Developers[{i}]", "This user is a leader of an existing team."); } else { member.Team = newTeam; member.Role = _context.Roles.First(r => r.Name == "Developer"); } } else { mark = true; ModelState.AddModelError($"Developers[{i}]", "No such user."); } } if (mark || duplicates) { return(View(model)); } _context.Add(newTeam); _context.SaveChanges(); return(RedirectToAction(nameof(Index))); } return(View(model)); }