Пример #1
0
        /// <summary>
        /// Perform the query filering for the GetAccounts.
        /// </summary>
        private IQueryable <Model.Account> GetAccountsOnQuery(IQueryable <Model.Account> query, AccountArgs?args, ICosmosDbArgs dbArgs)
        {
            if (args == null || args.IsInitial)
            {
                return(query);
            }

            // Where an argument value has been specified then add as a filter - the WhereWhen and WhereWith are enabled by Beef.
            var q = query.WhereWhen(!(args.OpenStatus == null) && args.OpenStatus != OpenStatus.All, x => x.OpenStatus == args !.OpenStatus !.Code);

            q = q.WhereWith(args?.ProductCategory, x => x.ProductCategory == args !.ProductCategory !.Code);

            // With checking IsOwned a simple false check cannot be performed with Cosmos; assume "not IsDefined" is equivalent to false also.
            if (args !.IsOwned == null)
            {
                return(q);
            }

            if (args.IsOwned == true)
            {
                return(q.Where(x => x.IsOwned == true));
            }
            else
            {
                return(q.Where(x => !x.IsOwned.IsDefined() || !x.IsOwned));
            }
        }
Пример #2
0
 private IQueryable <Person> GetByArgsOnQuery(IQueryable <Person> q, PersonArgs?args, ICosmosDbArgs dbArgs)
 {
     q = q.WhereWildcard(x => x.FirstName, args?.FirstName);
     q = q.WhereWildcard(x => x.LastName, args?.LastName);
     q = q.WhereWith(args?.Genders, x => args !.Genders !.ToCodeList().Contains(x.GenderSid));
     return(q.OrderBy(x => x.LastName));
 }
Пример #3
0
 private IQueryable <Model.Robot> GetByArgsOnQuery(IQueryable <Model.Robot> q, RobotArgs args, ICosmosDbArgs dbArgs)
 {
     q = q.WhereWildcard(x => x.ModelNo, args?.ModelNo);
     q = q.WhereWildcard(x => x.SerialNo, args?.SerialNo);
     q = q.WhereWith(args?.PowerSources, x => args.PowerSources.ToCodeList().Contains(x.PowerSource));
     return(q.OrderBy(x => x.SerialNo));
 }