示例#1
0
        private (string, object[]) resolveFilter(IAccountFilter filter)
        {
            dynamic       paramsToAdd = new ExpandoObject();
            StringBuilder whereToAdd  = new StringBuilder();
            bool          hasWhere    = false;

            if (filter != null)
            {
                if (filter.Id.HasValue)
                {
                    whereToAdd.Append(" Id = @AccountId ");
                    paramsToAdd.AccountId = filter.Id.Value;
                    hasWhere = true;
                }
                if (!String.IsNullOrEmpty(filter.Email))
                {
                    if (hasWhere)
                    {
                        whereToAdd.Append(" AND ");
                    }
                    whereToAdd.Append(" Email = @Email ");
                    paramsToAdd.Email = filter.Email;
                    hasWhere          = true;
                }
            }

            if (hasWhere)
            {
                return($" WHERE {whereToAdd.ToString()}", paramsToAdd.ToArray());
            }
            return(String.Empty, paramsToAdd.ToArray());
        }
        public async Task <IAccount> GetFirstAsync(IAccountFilter filter = null, List <IOrderBy> orderBy = null, string includeProperties = null)
        {
            var query = getQueryable();

            query = resolveFilter(query, filter);
            query = resolveOrderBy(query, orderBy);
            return(await Task.FromResult(query.FirstOrDefault()));
        }
 private IQueryable <Account> resolveFilter(IQueryable <Account> query, IAccountFilter filter)
 {
     if (filter != null)
     {
         if (filter.Id.HasValue)
         {
             query = query.Where(w => w.Id == filter.Id.Value).AsQueryable();
         }
         if (!String.IsNullOrEmpty(filter.Email))
         {
             query = query.Where(w => w.Email == filter.Email).AsQueryable();
         }
     }
     return(query);
 }
示例#4
0
        public async Task <IAccount> GetFirstAsync(IAccountFilter filter = null, List <IOrderBy> orderBy = null, string includeProperties = null)
        {
            Account account      = null;
            var     filterOut    = resolveFilter(filter);
            var     filterToAdd  = filterOut.Item1;
            var     filterParams = filterOut.Item2;
            var     orderByToAdd = resolveOrderBy(orderBy);

            using (var connection = _connectionFactory.GetConnection())
            {
                string sqlQuery = $"SELECT Id, Email, Password FROM Accounts {filterToAdd} {orderByToAdd} ";
                account = await connection.QueryFirstOrDefaultAsync <Account>(sqlQuery, filterParams);
            }
            return(account);
        }
示例#5
0
 public AddUserOperation(IResourceOwnerRepository resourceOwnerRepository,
                         IClaimRepository claimRepository,
                         ILinkProfileAction linkProfileAction,
                         IAccountFilter accountFilter,
                         IOpenIdEventSource openIdEventSource,
                         IEnumerable <IUserClaimsEnricher> userClaimsEnricherLst,
                         ISubjectBuilder subjectBuilder)
 {
     _resourceOwnerRepository = resourceOwnerRepository;
     _claimRepository         = claimRepository;
     _linkProfileAction       = linkProfileAction;
     _accountFilter           = accountFilter;
     _openidEventSource       = openIdEventSource;
     _userClaimsEnricherLst   = userClaimsEnricherLst;
     _subjectBuilder          = subjectBuilder;
 }
 public async Task <bool> GetExistsAsync(IAccountFilter filter = null)
 {
     throw new NotImplementedException();
 }
 public async Task <int> GetCountAsync(IAccountFilter filter = null)
 {
     throw new NotImplementedException();
 }
 public async Task <IEnumerable <IAccount> > FindAsync(IAccountFilter filter = null, List <IOrderBy> orderBy = null, string includeProperties = null, int?skip = null, int?take = null)
 {
     throw new NotImplementedException();
 }
示例#9
0
 public AccountFilterFixture()
 {
     _filterRepositoryStub = new Mock <IFilterStore>();
     _accountFilter        = new AccountFilter(_filterRepositoryStub.Object);
 }
 private void InitializeFakeObjects()
 {
     _filterRepositoryStub = new Mock <IFilterRepository>();
     _accountFilter        = new AccountFilter(_filterRepositoryStub.Object);
 }