Example #1
0
        public void UpdateAdmin(EditAdminData data)
        {
            var validationResult = new EditAdminValidator().Validate(data);

            if (!validationResult.IsValid)
            {
                throw new RegoException(validationResult.Errors.First().ErrorMessage);
            }

            var admin = _repository.GetAdminById(data.Id);

            //todo: KB: should be handled by EditAdminValidator
            if (admin == null)
            {
                throw new RegoException(string.Format("User with id: {0} not found", data.Id));
            }

            var role = _repository.Roles.SingleOrDefault(r => r.Id == data.RoleId);

            using (var scope = CustomTransactionScope.GetTransactionScope())
            {
                admin.Username    = data.Username;
                admin.FirstName   = data.FirstName;
                admin.LastName    = data.LastName;
                admin.IsActive    = data.IsActive;
                admin.Language    = data.Language;
                admin.Description = data.Description;

                //todo: KB: should be handled by EditAdminValidator
                if (role != null)
                {
                    admin.Role = role;
                }

                admin.SetLicensees(data.AssignedLicensees);

                admin.SetAllowedBrands(data.AllowedBrands);

                admin.SetCurrencies(data.Currencies);

                if (data.RoleId != role.Id)
                {
                    _authCommands.AssignRoleToActor(new AssignRole
                    {
                        ActorId = admin.Id,
                        RoleId  = role.Id
                    });
                }

                _repository.SaveChanges();

                _eventBus.Publish(new AdminUpdated(admin));

                scope.Complete();
            }
        }
Example #2
0
        public ValidationResult GetValidationResult(EditAdminData data)
        {
            var validator = new EditAdminValidator();

            return(validator.Validate(data));
        }