private void SetRolesRule() { if (HttpMethod == HttpMethod.Post || RequestJsonDictionary.ContainsKey("role_ids")) { IList <CustomerRole> customerRoles = null; RuleFor(x => x.RoleIds) .NotNull() .Must(roles => roles.Count > 0) .WithMessage("role_ids required") .DependentRules(() => RuleFor(dto => dto.RoleIds) .Must(roleIds => { if (customerRoles == null) { customerRoles = _customerRolesHelper.GetValidCustomerRoles(roleIds); } var isInGuestAndRegisterRoles = _customerRolesHelper.IsInGuestsRole(customerRoles) && _customerRolesHelper.IsInRegisteredRole(customerRoles); // Customer can not be in guest and register roles simultaneously return(!isInGuestAndRegisterRoles); }) .WithMessage("must not be in guest and register roles simultaneously") .DependentRules(() => RuleFor(dto => dto.RoleIds) .Must(roleIds => { if (customerRoles == null) { customerRoles = _customerRolesHelper.GetValidCustomerRoles(roleIds); } var isInGuestOrRegisterRoles = _customerRolesHelper.IsInGuestsRole(customerRoles) || _customerRolesHelper.IsInRegisteredRole(customerRoles); // Customer must be in either guest or register role. return(isInGuestOrRegisterRoles); }) .WithMessage("must be in guest or register role") ) ); } }
private void AddValidRoles(Delta <CustomerDto> customerDelta, Customer currentCustomer) { IList <CustomerRole> validCustomerRoles = _customerRolesHelper.GetValidCustomerRoles(customerDelta.Dto.RoleIds).ToList(); // Add all newly passed roles foreach (var role in validCustomerRoles) { currentCustomer.CustomerRoles.Add(role); } }
private void SetRuleForRoles() { IList <CustomerRole> customerRoles = null; RuleFor <List <int> >(x => x.RoleIds) .NotNull() .Must(roles => roles.Count > 0) .WithMessage("role_ids required") .DependentRules(dependentRules => dependentRules.RuleFor(dto => dto.RoleIds) .Must(roleIds => { if (customerRoles == null) { customerRoles = _customerRolesHelper.GetValidCustomerRoles(roleIds); } bool isInGuestAndRegisterRoles = _customerRolesHelper.IsInGuestsRole(customerRoles) && _customerRolesHelper.IsInRegisteredRole(customerRoles); // Customer can not be in guest and register roles simultaneously return(!isInGuestAndRegisterRoles); }) .WithMessage("must not be in guest and register roles simultaneously") .DependentRules(dependentRule => dependentRules.RuleFor(dto => dto.RoleIds) .Must(roleIds => { if (customerRoles == null) { customerRoles = _customerRolesHelper.GetValidCustomerRoles(roleIds); } bool isInGuestOrRegisterRoles = _customerRolesHelper.IsInGuestsRole(customerRoles) || _customerRolesHelper.IsInRegisteredRole(customerRoles); // Customer must be in either guest or register role. return(isInGuestOrRegisterRoles); }) .WithMessage("must be in guest or register role") ) ); }