コード例 #1
0
        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();
            }
        }
コード例 #2
0
 public IActionResult Post([FromBody] UserAdminAddOrChangeDto dto, [FromServices] IAddUserCommand command)
 {
     _executor.ExecuteCommand(command, dto);
     return(StatusCode(StatusCodes.Status201Created));
 }