示例#1
0
        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);
        }
示例#2
0
        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}"));
        }