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())));
        }
Exemplo n.º 2
0
 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)));
 }
Exemplo n.º 3
0
        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);
        }