public void Execute(ChangeUserGroupDto request) { _validator.ValidateAndThrow(request); var user = _context.Users.Include(x => x.UserUserCases).Where(x => x.Id == request.Id).FirstOrDefault(); if (user == null) { throw new EntityNotFoundException(request.Id, typeof(WatchShop.Domain.User)); } user.GroupId = request.GroupId; var useCases = new List <WatchShop.Domain.UserUserCase>(); var useCasesList = _context.UseCases.ToList(); var adminUseCases = useCasesList.Where(x => x.Id != 8).Select(x => x.Id); var userUseCases = useCasesList.Where(x => !x.AdminCase).Select(x => x.Id); if (user.GroupId == 1) { foreach (var useCase in adminUseCases) { useCases.Add(new WatchShop.Domain.UserUserCase { UseCaseId = useCase, UserId = user.Id }); } } else { foreach (var useCase in userUseCases) { useCases.Add(new WatchShop.Domain.UserUserCase { UseCaseId = useCase, UserId = user.Id }); } } user.UserUserCases = useCases; _context.SaveChanges(); }
public IActionResult ChangeGroup(int id, [FromBody] ChangeUserGroupDto dto, [FromServices] IAdminChangeUser command) { dto.Id = id; _executor.ExecuteCommand(command, dto); return(StatusCode(StatusCodes.Status204NoContent)); }