public Result <IQueryable <User>, OperationError> GetUsersWhichCanBeAssignedToRole(DataProcessingRegistration registration, int roleId, Maybe <string> nameEmailQuery) { if (registration == null) { throw new ArgumentNullException(nameof(registration)); } var targetRole = _localRoleOptionsService.GetAvailableOption(registration.OrganizationId, roleId); if (targetRole.IsNone) { return(new OperationError("Invalid role id", OperationFailure.BadInput)); } var candidates = _userRepository.SearchOrganizationUsers(registration.OrganizationId, nameEmailQuery); var usersWithSameRole = GetIdsOfUsersAssignedToRole(registration, targetRole.Value); return(Result <IQueryable <User>, OperationError> .Success(candidates.ExceptEntitiesWithIds(usersWithSameRole.ToList()))); }
public Result <TOption, OperationError> Assign(TOwner owner, int optionId) { if (owner == null) { throw new ArgumentNullException(nameof(owner)); } return (_optionsService .GetAvailableOption(owner.OrganizationId, optionId) .Select(option => PerformAssign(owner, option)) .Match(result => result, () => new OperationError("Invalid option id", OperationFailure.BadInput))); }
private Result <SystemRelationOperationContext, OperationError> LoadFrequency(SystemRelationOperationContext context) { var toFrequency = Maybe <RelationFrequencyType> .None; var frequencyId = context.Input.FrequencyId; if (frequencyId.HasValue) { toFrequency = _frequencyService.GetAvailableOption(context.Entities.FromSystemUsage.OrganizationId, frequencyId.Value); if (toFrequency.IsNone) { return(new OperationError("Frequency type is not available in the organization", OperationFailure.BadInput)); } } context.Entities.Frequency = toFrequency.GetValueOrDefault(); return(context); }