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(); } }
public ValidationResult GetValidationResult(EditAdminData data) { var validator = new EditAdminValidator(); return(validator.Validate(data)); }