public void Execute(UserAddDto request)
        {
            request.Id = 0;
            _validator.ValidateAndThrow(request);
            _context.Users.Add(_maper.Map <User>(request));
            _context.SaveChanges();

            var user     = _context.Users.Include(x => x.UserUserCases).FirstOrDefault(x => x.Username == request.Username);
            var useCases = new List <UserUserCase>();

            if (user.RoleId == (int)Roles.Admin)
            {
                foreach (var useCase in RightListes.AdminRights())
                {
                    useCases.Add(new UserUserCase
                    {
                        UseCaseId = useCase,
                        UserId    = user.Id
                    });
                }
            }
            if (user.RoleId == (int)Roles.User)
            {
                foreach (var useCase in RightListes.UserRights())
                {
                    useCases.Add(new UserUserCase
                    {
                        UseCaseId = useCase,
                        UserId    = user.Id
                    });
                }
            }

            if (user.RoleId != (int)Roles.User || user.RoleId != (int)Roles.Admin)
            {
                foreach (var useCase in request.UseCases)
                {
                    useCases.Add(new UserUserCase
                    {
                        UseCaseId = useCase,
                        UserId    = user.Id
                    });
                }
            }


            user.UserUserCases = useCases;
            _context.SaveChanges();
        }
예제 #2
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();
            }
        }