public void Execute(UserAdminAddOrChangeDto request) { _validator.ValidateAndThrow(request); _context.Users.Add(_mapper.Map <WatchShop.Domain.User>(request)); _context.SaveChanges(); var user = _context.Users.FirstOrDefault(x => x.Username == request.Username); var useCases = new List <WatchShop.Domain.UserUserCase>(); var useCasesList = _context.UseCases.ToList(); var adminUseCases = useCasesList.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 }); } } if (user.GroupId == 2) { foreach (var useCase in userUseCases) { useCases.Add(new WatchShop.Domain.UserUserCase { UseCaseId = useCase, UserId = user.Id }); } } if (useCases.Count > 0) { user.UserUserCases = useCases; _context.SaveChanges(); } }
public IActionResult Post([FromBody] UserAdminAddOrChangeDto dto, [FromServices] IAddUserCommand command) { _executor.ExecuteCommand(command, dto); return(StatusCode(StatusCodes.Status201Created)); }