internal static Assignment Create(TechnicianRole technicianRole, WorkDay workDay) { if (technicianRole == null) { return(null); } if (workDay == null) { return(null); } var assignment = new Assignment { WorkDayId = workDay.Id, WorkDay = workDay, TechnicianRole = technicianRole, TechnicianRoleId = technicianRole.Id }; var user = assignment.GetCurrentUser(RepositoryFinder); if (user != null) { assignment.SetAuditInfo(user.Login); } return(assignment); }
public async Task <IActionResult> OnPostAddRoleAsync(string id, int roleToAddId) { Technician tecToUpdate = await _context.Technician. Include(s => s.TechnicianRoles). ThenInclude(f => f.Role). AsNoTracking(). FirstOrDefaultAsync(m => m.Id == id); await TryUpdateModelAsync <Technician>(tecToUpdate); if (roleToAddId != 0) { Role RoleToAdd = await _context.Role.Where(a => a.RoleId == roleToAddId).FirstOrDefaultAsync(); var TechnicianRole = new TechnicianRole() { TechnicianId = id, RoleId = roleToAddId, Role = RoleToAdd, Technician = tecToUpdate }; tecToUpdate.TechnicianRoles.Add(TechnicianRole); } try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { } return(Redirect(Request.Path + $"?id={id}")); }