示例#1
0
        public Page<Script> List(ListFilter filter)
        {
            var results = _scripts
                .Page(filter, x => x.Id)
                .Transform(x => x.ToRepositoryType());

            return results;
        }
示例#2
0
        Page<UserSession> ISessionRepository.ListUserSessions(User user, ListFilter filter)
        {
            var result = _userSessions
                .Where(x => x.User.Id == user.Id)
                .Page(filter, x => x.Id)
                .Transform(x => x.ToRepositoryType());

            return result;
        }
示例#3
0
        public IFilter Parse()
        {
            var tokenizer = new Tokenizer(Filter);

            tokens = tokenizer.Tokenize();
            pos = -2;

            string conjunction;
            FilterSet filter = new FilterAndSet();
            IFilter thisFilter;
            IFilter last;
            FilterOrSet orSet;

            while (++pos < tokens.Count)
            {
                conjunction = pos == -1 ? "," : tokens[pos];

                var name = GetNextToken("field name");
                var oper = GetNextToken("operator");
                var value = GetNextToken("value");

                if (Tokens.IsListStart(value))
                {
                    var values = new List<string>();
                    while (!Tokens.IsListEnd(GetNextToken("value")))
                        values.Add(tokens[pos]);
                    thisFilter = new ListFilter(name, oper, values);
                }
                else
                    thisFilter = new Filter(name, oper, value);

                if (conjunction == ",") // and
                    filter.Add(thisFilter);
                else if (conjunction == "|") // or
                {
                    last = filter.Last();
                    if (!(last is FilterOrSet))
                    {
                        filter.RemoveAt(filter.Count - 1);
                        orSet = new FilterOrSet();
                        orSet.Add(last);
                        orSet.Add(thisFilter);
                        filter.Add(orSet);
                    }
                    else
                        ((FilterOrSet)last).Add(thisFilter);
                }
                else
                    throw new ParseException("Parser: Unexpected '{0}', expected conjunction instead.", conjunction);
            }

            return filter;
        }
示例#4
0
        public CleaningResult(ListFilter filter, int totalItemsCount, int deletedItemsCount)
        {
            Deleted = deletedItemsCount;
            Skipped = totalItemsCount - Deleted;
            NextFilter = new ListFilter
            {
                SortDirection = filter.SortDirection,
                Start = filter.Start + Skipped
            };

            if (Deleted == 0 && Skipped == 0)
            {
                Done = true;
            }
        }
示例#5
0
 /// <summary>
 /// Gets a list of up to 250 of the shop's redirects.
 /// </summary>
 public virtual async Task <ListResult <Entities.Redirect> > ListAsync(ListFilter <Entities.Redirect> filter, CancellationToken cancellationToken = default)
 {
     return(await ExecuteGetListAsync("redirects.json", "redirects", filter, cancellationToken));
 }
示例#6
0
        public IEnumerable <IdentityRole> GetRoles(ListFilter filter)
        {
            using (var db = new LogistoDb())
            {
                var query = db.IdentityRoles.AsQueryable();

                // условия поиска

                if (!string.IsNullOrWhiteSpace(filter.Context))
                {
                    query = query.Where(w => w.Name.Contains(filter.Context) ||
                                        w.Description.Contains(filter.Context)
                                        );
                }

                // sort
                if (!string.IsNullOrWhiteSpace(filter.Sort))
                {
                    if (string.IsNullOrWhiteSpace(filter.SortDirection))
                    {
                        filter.SortDirection = "Asc";
                    }

                    switch (filter.Sort)
                    {
                    case "Id":
                        if (filter.SortDirection == "Asc")
                        {
                            query = query.OrderBy(o => o.Id);
                        }
                        else
                        {
                            query = query.OrderByDescending(o => o.Id);
                        }

                        break;

                    case "Name":
                        if (filter.SortDirection == "Asc")
                        {
                            query = query.OrderBy(o => o.Name);
                        }
                        else
                        {
                            query = query.OrderByDescending(o => o.Name);
                        }

                        break;
                    }
                }

                // пейджинг

                if (filter.PageNumber > 0)
                {
                    query = query.Skip(filter.PageNumber * filter.PageSize);
                }

                if (filter.PageSize > 0)
                {
                    query = query.Take(filter.PageSize);
                }

                return(query.ToList());
            }
        }
示例#7
0
        /// <summary>
        /// Searches through a shop's customers for the given search query. NOTE: Assumes the <paramref name="query"/> and <paramref name="order"/> strings are not encoded.
        /// </summary>
        /// <param name="query">The (unencoded) search query, in format of 'Bob country:United States', which would search for customers in the United States with a name like 'Bob'.</param>
        /// <param name="order">An (unencoded) optional string to order the results, in format of 'field_name DESC'. Default is 'last_order_date DESC'.</param>
        /// <param name="filter">Options for filtering the results.</param>
        /// <returns>A list of matching customers.</returns>
        public virtual async Task <IEnumerable <Customer> > SearchAsync(string query, string order = null, ListFilter filter = null)
        {
            var req = PrepareRequest("customers/search.json");

            req.Url.QueryParams.Add("query", query, false);

            if (!string.IsNullOrEmpty(order))
            {
                req.Url.QueryParams.Add("order", order, false);
            }

            if (filter != null)
            {
                req.Url.QueryParams.AddRange(filter.ToParameters());
            }

            return(await ExecuteRequestAsync <List <Customer> >(req, HttpMethod.Get, rootElement : "customers"));
        }
 /// <summary>
 /// Gets a list of inventory items.
 /// </summary>
 public virtual async Task <ListResult <InventoryLevel> > ListAsync(ListFilter <InventoryLevel> filter)
 {
     return(await ExecuteGetListAsync($"inventory_levels.json", "inventory_levels", filter));
 }
示例#9
0
文件: Lists.cs 项目: Bunk/trellow
 public IEnumerable <List> ForBoard(IBoardId board, ListFilter filter = ListFilter.Open)
 {
     return(_restClient.Request <List <List> >(new ListsForBoardRequest(board, filter)));
 }
示例#10
0
        public void Test_Lists()
        {
            ListColumn colStatic = new ListColumn(0, 0, DataType.dtString, 0, true);

            Assert.IsNotNull(colStatic);
            Assert.AreEqual(0, colStatic.Order);
            Assert.AreEqual(false, colStatic.CurActive);
            Assert.AreEqual(0, colStatic.CurWidth);

            //
            ListFilter listFilter = new ListFilter();

            Assert.IsNotNull(listFilter);
            Assert.AreEqual(0, listFilter.Conditions.Count);
            listFilter.Clear();
            Assert.AreEqual(0, listFilter.Conditions.Count);

            ListManager  listManager;
            ListViewMock lvMock = new ListViewMock();
            GKListItem   listItem;

            //
            listManager = new GroupListMan(fContext);
            Assert.IsNotNull(listManager);

            GEDCOMGroupRecord grpRec = fContext.Tree.XRefIndex_Find("G1") as GEDCOMGroupRecord;

            listManager.Fetch(grpRec);

            listManager.QuickFilter = "*";
            Assert.IsTrue(listManager.CheckFilter());
            listManager.QuickFilter = "*roup*";
            Assert.IsTrue(listManager.CheckFilter());
            listManager.QuickFilter = "*alpha*";
            Assert.IsFalse(listManager.CheckFilter());

            listManager.UpdateColumns(lvMock);
            listItem = new GKListItem("", null);
            listManager.UpdateItem(0, listItem, grpRec);

            //
            var colVal = listManager.GetColumnInternalValue(0);

            Assert.IsNotNull(colVal);

            var data = listManager.GetItemData(grpRec);

            Assert.IsNotNull(data);
            Assert.IsTrue(data.Length > 0);

            //
            IListFilter  filter      = listManager.Filter;
            IListColumns listColumns = listManager.ListColumns;

            ListColumns copyColumns = GroupListMan.CreateGroupListColumns();

            listColumns.CopyTo(copyColumns);

            Assert.Throws(typeof(ArgumentNullException), () => { listColumns.CopyTo(null); });

            listManager.QuickFilter = "*";
            listManager.AddCondition((byte)GroupColumnType.ctName, ConditionKind.ck_Contains, "*roup*");
            Assert.IsTrue(listManager.CheckFilter());
        }
 /// <summary>
 /// Gets a list of up to 250 of the order's fulfillments.
 /// </summary>
 /// <param name="orderId">The order id to which the fulfillments belong.</param>
 /// <param name="filter">Options for filtering the list.</param>
 public virtual async Task <ListResult <Fulfillment> > ListAsync(long orderId, ListFilter <Fulfillment> filter = null)
 {
     return(await ExecuteGetListAsync($"orders/{orderId}/fulfillments.json", "fulfillments", filter));
 }
示例#12
0
        public Page<Task> List(User user, ListFilter filter)
        {
            var results = _tasks
                .Where(x => x.Owner.Id == user.Id)
                .Page(filter, x => x.Script.CreationTimestamp)
                .Transform(x => x.ToRepositoryType());

            return results;
        }
示例#13
0
 /// <summary>
 /// Gets a list of up to 250 of the shop's price rules.
 /// </summary>
 public virtual async Task <ListResult <PriceRule> > ListAsync(ListFilter <PriceRule> filter)
 {
     return(await ExecuteGetListAsync("price_rules.json", "price_rules", filter));
 }
示例#14
0
 /// <summary>
 /// Gets a list of inventory items.
 /// </summary>
 public virtual async Task <ListResult <InventoryLevel> > ListAsync(ListFilter <InventoryLevel> filter, CancellationToken cancellationToken = default)
 {
     return(await ExecuteGetListAsync($"inventory_levels.json", "inventory_levels", filter, cancellationToken));
 }
示例#15
0
 /// <summary>
 /// Gets a list of all past and present application credits.
 /// </summary>
 public virtual async Task <ListResult <ApplicationCredit> > ListAsync(ListFilter <ApplicationCredit> filter, CancellationToken cancellationToken = default)
 {
     return(await ExecuteGetListAsync("application_credits.json", "application_credits", filter, cancellationToken));
 }
示例#16
0
 public new Task <ListResult <T> > ExecuteGetListAsync <T>(string path, string resultRootElt, ListFilter <T> filter, CancellationToken cancellationToken = default)
 {
     return(base.ExecuteGetListAsync(path, resultRootElt, filter, cancellationToken));
 }
示例#17
0
 /// <summary>
 /// Gets a list of up to 250 of the shop's customer saved searches.
 /// </summary>
 public virtual async Task <ListResult <CustomerSavedSearch> > ListAsync(ListFilter <CustomerSavedSearch> filter = null)
 {
     return(await ExecuteGetListAsync($"{RootResource}.json", RootResource, filter));
 }
示例#18
0
		public ListsForBoardRequest(IBoardId board, ListFilter filter)
			: base(board, "lists")
		{
			this.AddFilter(filter);
		}
        /// <summary>
        /// Returns a list of all <see cref="Customer"/> that are in the saved search
        /// </summary>
        /// <param name="customerSavedSearchId">Id of the Customer Saved Search</param>
        /// <returns></returns>
        public Task <List <Customer> > GetCustomersFromSavedSearch(long customerSavedSearchId, string query = null, ListFilter filter = null)
        {
            var req = PrepareRequest($"{RootResource}/{customerSavedSearchId}/customers.json");

            if (query != null)
            {
                req.QueryParams.Add("query", query);
            }

            if (filter != null)
            {
                req.QueryParams.AddRange(filter.ToParameters());
            }

            return(ExecuteRequestAsync <List <Customer> >(req, HttpMethod.Get, rootElement: "customers"));
        }
示例#20
0
 public BoardListsRequest(IBoardId boardId, ListFilter filter)
     : base(boardId, "lists")
 {
     this.AddFilter(filter);
 }
        /// <summary>
        /// Searches through a shop's customers for the given search query. NOTE: Assumes the <paramref name="query"/> and <paramref name="order"/> strings are not encoded.
        /// </summary>
        /// <param name="query">The (unencoded) search query, in format of 'Bob country:United States', which would search for customers in the United States with a name like 'Bob'.</param>
        /// <param name="sinceId">Restricts results to after a given id.</param>
        /// <param name="filter">Options for filtering the results.</param>
        /// <returns>A list of matching customers.</returns>
        public virtual Task <List <CustomerSavedSearch> > SearchAsync(string query, string sinceId = null, ListFilter filter = null)
        {
            var req = PrepareRequest($"{RootResource}.json");

            req.QueryParams.Add("query", query);

            if (!string.IsNullOrEmpty(sinceId))
            {
                req.QueryParams.Add("since_id", sinceId);
            }

            if (filter != null)
            {
                req.QueryParams.AddRange(filter.ToParameters());
            }

            return(ExecuteRequestAsync <List <CustomerSavedSearch> >(req, HttpMethod.Get, rootElement: RootResource));
        }
        /// <summary>
        /// Gets a list of up to 250 of the order's fulfillments.
        /// </summary>
        /// <param name="orderId">The order id to which the fulfillments belong.</param>
        /// <param name="options">Options for filtering the list.</param>
        /// <returns>The list of fulfillments matching the filter.</returns>
        public virtual async Task <IEnumerable <Fulfillment> > ListAsync(long orderId, ListFilter options = null)
        {
            var req = PrepareRequest($"orders/{orderId}/fulfillments.json");

            if (options != null)
            {
                req.QueryParams.AddRange(options.ToParameters());
            }

            return(await ExecuteRequestAsync <List <Fulfillment> >(req, HttpMethod.Get, rootElement : "fulfillments"));
        }
示例#23
0
 /// <summary>
 /// Retrieves a list of refunds for an order.
 /// </summary>
 /// <param name="orderId">The id of the order to list orders for.</param>
 /// <param name="cancellationToken">Cancellation Token</param>
 public virtual async Task <ListResult <Refund> > ListForOrderAsync(long orderId, ListFilter <Refund> filter, CancellationToken cancellationToken = default)
 {
     return(await ExecuteGetListAsync($"orders/{orderId}/refunds.json", "refunds", filter, cancellationToken));
 }
示例#24
0
 /// <summary>
 /// Clears any applied filters to the collection view object
 /// </summary>
 private void ClearFilter()
 {
     UserListView.Filter = null;
     ListFilter.ResetFilter();
 }
示例#25
0
        Page<WebHookSession> ISessionRepository.ListWebhookSessions(User user, ListFilter filter)
        {
            var result = _webHookSessions
                .Where(x => x.Computer.Owner.Id == user.Id)
                .Page(filter, x => x.Id)
                .Transform(x => x.ToRepositoryType());

            return result;
        }
示例#26
0
 /// <summary>
 /// Gets a list of up to 250 of the discount codes belonging to the price rule.
 /// </summary>
 public virtual async Task <ListResult <PriceRuleDiscountCode> > ListAsync(long priceRuleId, ListFilter <PriceRuleDiscountCode> filter, CancellationToken cancellationToken = default)
 {
     return(await ExecuteGetListAsync($"price_rules/{priceRuleId}/discount_codes.json", "discount_codes", filter, cancellationToken));
 }
示例#27
0
        private void InitModel()
        {
            if (this.ItemType != null)
            {
                Model          item       = new Model();
                PropertyInfo[] infoArray2 = this.ItemType.GetProperties();
                GridFilters    filters    = new GridFilters();
                filters.MenuFilterText = "搜索";
                filters.ID             = "filters" + ID;
                for (int i = 0; i < infoArray2.Length; i++)
                {
                    Func <ColumnBase, bool> predicate = null;
                    PropertyInfo            property  = infoArray2[i];
                    ModelField field = new ModelField
                    {
                        Name = property.Name
                    };
                    #region  射字段类型
                    string fullName = property.PropertyType.FullName;
                    if (fullName.Contains("System.Int"))
                    {
                        var enumDataTypeAttr = AttributeHelper.GetAttribute <EnumDataTypeAttribute>(property);
                        if (enumDataTypeAttr == null)
                        {
                            field.Type = ModelFieldType.Int;
                        }
                    }
                    else if (fullName.Contains("System.DateTime"))
                    {
                        field.Type = ModelFieldType.Date;
                    }
                    else if (fullName.Contains("System.Single"))
                    {
                        field.Type = ModelFieldType.Float;
                    }
                    else if (fullName.Contains("System.Boolean"))
                    {
                        field.Type = ModelFieldType.Boolean;
                    }
                    else if (fullName.Contains("System.String"))
                    {
                        field.Type = ModelFieldType.String;
                    }
                    else if (!property.PropertyType.IsPrimitive)
                    {
                        field.Type = ModelFieldType.Object;
                    }
                    else
                    {
                        field.Type = ModelFieldType.Auto;
                    }
                    #endregion
                    item.Fields.Add(field);

                    if (predicate == null)
                    {
                        predicate = x => x.DataIndex == property.Name;
                    }
                    ColumnBase column = this.ColumnModel.Columns.FirstOrDefault <ColumnBase>(predicate);
                    if (column == null)
                    {
                        ColumnBase base2;
                        DataGridColumnAttribute displayAttr = AttributeHelper.GetAttribute <DataGridColumnAttribute>(property);
                        FilterAttribute         filterAttr  = AttributeHelper.GetAttribute <FilterAttribute>(property);
                        bool       simpleFilterable         = filterAttr != null && filterAttr.Enabled && filterAttr.FilterType == null;
                        GridFilter filter = null;
                        #region  射列类型
                        if (fullName.Contains("System.Int") ||
                            fullName.Contains("System.Single") ||
                            fullName.Contains("System.Decimal") ||
                            fullName.Contains("System.Double"))
                        {
                            NumberColumn column1 = new NumberColumn
                            {
                                Format = this.GetFormat(displayAttr, "0")
                            };
                            base2 = column1;
                            if (simpleFilterable && filterAttr.FilterType == null)
                            {
                                filter = new NumericFilter();
                            }
                        }
                        else if (fullName.Contains("System.DateTime"))
                        {
                            DateColumn column2 = new DateColumn
                            {
                                Format = this.GetFormat(displayAttr, "Y-m-d")
                            };
                            base2 = column2;
                            if (simpleFilterable)
                            {
                                filter = new DateFilter()
                                {
                                    AfterText  = "在这之后",
                                    BeforeText = "在这之前",
                                    OnText     = "在这天"
                                };
                            }
                        }
                        else if (fullName.Contains("System.Boolean"))
                        {
                            string[]      strArray = this.GetFormat(displayAttr, "是|否").Split(new char[] { '|' });
                            BooleanColumn column4  = new BooleanColumn
                            {
                                TrueText  = strArray[0],
                                FalseText = strArray[1]
                            };
                            base2 = column4;
                            if (simpleFilterable)
                            {
                                filter = new BooleanFilter()
                                {
                                    NoText  = strArray[1],
                                    YesText = strArray[0]
                                };
                            }
                        }
                        else if (fullName.Contains("System.String"))
                        {
                            base2 = new Column();
                            if (simpleFilterable)
                            {
                                filter = new StringFilter();
                            }
                        }
                        else if (!property.PropertyType.IsPrimitive)
                        {
                            base2 = new Column();
                            if (simpleFilterable)
                            {
                                filter = new StringFilter();
                            }
                        }
                        else
                        {
                            base2 = new Column();
                            if (simpleFilterable)
                            {
                                filter = new StringFilter();
                            }
                        }
                        #endregion
                        #region 生成外键过滤器
                        if (filterAttr != null && filterAttr.Enabled && filterAttr.FilterType != null)
                        {
                            Store store = new Store();
                            store.ID = "filterStore" + property.Name;
                            if (filterAttr.FilterType.IsEnum)
                            {
                                var valueType = filterAttr.FilterType;
                                var values    = Enum.GetValues(valueType);
                                var names     = Enum.GetNames(valueType);
                                List <KeyValueModel> enumDict = new List <KeyValueModel>();
                                for (int it = 0; it < values.Length; it++)
                                {
                                    var fieldInfo = valueType.GetField(names[it]);
                                    var descAttr  = AttributeHelper.GetAttribute <DescriptionAttribute>(fieldInfo);
                                    if (descAttr == null)
                                    {
                                        throw new Exception("枚举必须要有Description");
                                    }
                                    int key = (int)values.GetValue(it);
                                    enumDict.Add(new KeyValueModel()
                                    {
                                        Id   = key,
                                        Name = descAttr.Description
                                    });
                                }
                                Model model = new Model();
                                model.Fields.Add(new ModelField("Id", ModelFieldType.Int));
                                model.Fields.Add(new ModelField("Name", ModelFieldType.String));
                                store.Model.Add(model);
                                store.DataSource = enumDict;
                                store.DataBind();
                                filter = new ListFilter()
                                {
                                    StoreID    = store.ID,
                                    Single     = true,
                                    IDField    = "Id",
                                    LabelField = "Name"
                                };
                            }
                            else
                            {
                                var filterObject = Activator.CreateInstance(filterAttr.FilterType);
                                var filterGen    = filterObject as ForeignFilterBase;
                                if (filterGen == null)
                                {
                                    throw new ArgumentException("FilterAttribute中的FilterType的类型必须为ForeignFilterBase的子类或枚举类型");
                                }
                                store.Model.Add(filterGen.GetModel());
                                store.DataSource = filterGen.GetData();
                                store.DataBind();
                                filter = new ListFilter()
                                {
                                    StoreID    = store.ID,
                                    Single     = true,
                                    IDField    = filterGen.IdField,
                                    LabelField = filterGen.LabelField
                                };
                            }
                            Bin.Add(store);
                        }
                        #endregion
                        base2.Text      = (displayAttr == null) ? property.Name : displayAttr.DisplayName;
                        base2.DataIndex = property.Name;
                        if (displayAttr != null && displayAttr.Width != -1)
                        {
                            base2.Width = displayAttr.Width;
                        }
                        if (displayAttr != null && displayAttr.ValueType != null)
                        {
                            Type valueType = displayAttr.ValueType;
                            var  values    = Enum.GetValues(valueType);
                            var  names     = Enum.GetNames(valueType);
                            Dictionary <int, string> enumDict  = new Dictionary <int, string>();
                            List <string>            valueList = new List <string>();
                            for (int it = 0; it < values.Length; it++)
                            {
                                var fieldInfo = valueType.GetField(names[it]);
                                var descAttr  = AttributeHelper.GetAttribute <DescriptionAttribute>(fieldInfo);
                                int key       = (int)values.GetValue(it);
                                enumDict.Add(key, descAttr.Description);
                                valueList.Add("values[\"" + names[it] + "\"]=\"" + (descAttr != null ? descAttr.Description : names[it]) + "\";");
                            }

                            base2.Renderer.Fn = "function(){var values=Array();" + string.Join(string.Empty, valueList) + "return values[arguments[0]];}";
                        }
                        if (filter != null)
                        {
                            filter.DataIndex = property.Name;
                            filters.Filters.Add(filter);
                        }
                        column = base2;
                        this.ColumnModel.Columns.Add(base2);
                    }
                    column.TabIndex = (short)i;
                }
                Features.Add(filters);
                if (this.ColumnModel.Columns.Count >= 10)
                {
                    this.AutoScroll = true;
                }
                var list = ColumnModel.Columns.OrderBy(x => x.TabIndex).ToList();
                ColumnModel.Columns.Clear();
                ColumnModel.Columns.AddRange(list);
                this._store.Model.Add(item);
            }
        }
 /// <summary>
 /// Gets a list of up to 250 of the discount codes belonging to the price rule.
 /// </summary>
 public virtual async Task <ListResult <PriceRuleDiscountCode> > ListAsync(long priceRuleId, ListFilter <PriceRuleDiscountCode> filter)
 {
     return(await ExecuteGetListAsync($"price_rules/{priceRuleId}/discount_codes.json", "discount_codes", filter));
 }
示例#29
0
        protected async Task <ListResult <T> > ExecuteGetListAsync <T>(string path, string resultRootElt, ListFilter <T> filter, CancellationToken cancellationToken = default, Dictionary <string, string> headers = null)
        {
            var result = await ExecuteGetCoreAsync <List <T> >(path, resultRootElt, filter, null, headers, cancellationToken);

            return(ParseLinkHeaderToListResult(result));
        }
示例#30
0
 /// <summary>
 /// Adds a filter to the collection.
 /// </summary>
 /// <param name="filter">The filter value.</param>
 public void Filter(ListFilter filter)
 {
     AdditionalParameters["filter"] = filter.GetDescription();
 }
 /// <summary>
 /// Gets a list of up to 250 of the shop's customer saved searches.
 /// </summary>
 public virtual async Task <ListResult <CustomerSavedSearch> > ListAsync(ListFilter <CustomerSavedSearch> filter = null, CancellationToken cancellationToken = default)
 {
     return(await ExecuteGetListAsync($"{RootResource}.json", RootResource, filter, cancellationToken));
 }
示例#32
0
 /// <summary>
 /// Gets a list of up to 250 of the shop's script tags.
 /// </summary>
 public virtual async Task <ListResult <Entities.ScriptTag> > ListAsync(ListFilter <Entities.ScriptTag> filter, CancellationToken cancellationToken = default)
 {
     return(await ExecuteGetListAsync("script_tags.json", "script_tags", filter, cancellationToken));
 }
示例#33
0
        /// <summary>
        /// Gets a list of up to 250 of the shop customers's addresses.
        /// </summary>
        /// <param name="customerId">The id of the customer to retrieve.</param>
        /// <returns></returns>
        public virtual async Task <IEnumerable <Address> > ListAsync(long customerId, ListFilter filter = null)
        {
            var req = PrepareRequest($"customers/{customerId}/addresses.json");

            if (filter != null)
            {
                req.QueryParams.AddRange(filter.ToParameters());
            }

            return(await ExecuteRequestAsync <List <Address> >(req, HttpMethod.Get, rootElement : "addresses"));
        }
示例#34
0
        /// <summary>
        /// Get all borads for me
        /// </summary>
        /// <returns></returns>
        public List<Board> GetAllBoards(BackgroundWorker worker, BoardFilter boardFilter, ListFilter listFilter)
        {
            List<Board> boards = new List<Board>();
            var blist = this.Boards.ForMe(boardFilter);
            boards.AddRange(blist);
            for (int i = 0; i < boards.Count; i++)
            {
                //if(boards[i].)
                var llist = this.Lists.ForBoard(boards[i], listFilter);
                boards[i].Lists.AddRange(llist);
                if (worker != null && worker.WorkerReportsProgress)
                {
                    worker.ReportProgress((i+1) * 100 / boards.Count, boards[i]);
                }

            }

            return boards;
        }
示例#35
0
        private static Expression GetExpression(ParameterExpression param, ListFilter filter)
        {
            var member = Expression.Property(param, filter.Selection);

            var propertyType = ((PropertyInfo)member.Member).PropertyType;
            var converter    = TypeDescriptor.GetConverter(propertyType);

            if (!converter.CanConvertFrom(typeof(string)))
            {
                throw new NotSupportedException();
            }
            //will give the integer value if the string is integer
            var propertyValue1 = converter.ConvertFromInvariantString(filter.Value);
            var propertyValue2 = string.IsNullOrEmpty(filter.Value2) ? null : converter.ConvertFromInvariantString(filter.Value2);


            var constant  = Expression.Constant(propertyValue1);
            var constant2 = Expression.Constant(propertyValue2);


            var emptyConstant = Expression.Constant(null);

            var arrayContainsMethod = typeof(List <object>).GetMethod("Contains", new Type[] { typeof(List <object>) });



            Expression ex = Expression.Empty();

            switch (filter.Element)
            {
            case "EQUALS":
                ex = EqualsTo.Build(member, constant);
                break;

            case "STARTS_WITH":
                ex = StartsWith.Build(member, constant);
                break;

            case "ENDS_WITH":
                ex = EndsWith.Build(member, constant);
                break;

            case "CONTAINS":
                ex = Contains.Build(member, constant);
                break;

            case "EMPTY":
                ex = Empty.Build(member, emptyConstant);
                break;

            case "NOT_EMPTY":
                ex = NotEmpty.Build(member, emptyConstant);
                break;

            case "GREATER_THAN":
                ex = Expression.GreaterThan(member, Expression.Convert(constant, member.Type));
                break;

            case "LESS_THAN":
                ex = Expression.LessThan(member, Expression.Convert(constant, member.Type));
                break;

            case "BETWEEN":
                ex = Between.Build(member, constant, constant2);
                break;

            case "IN":
                ex = Expression.Call(member, arrayContainsMethod, constant);
                break;
            }

            return(ex);
        }
 /// <summary>
 /// Gets a list of up to 250 of the shop customer's addresses.
 /// </summary>
 /// <param name="customerId">The id of the customer to retrieve.</param>
 /// <param name="cancellationToken">Cancellation Token</param>
 public virtual async Task <ListResult <Address> > ListAsync(long customerId, ListFilter <Address> filter = null, CancellationToken cancellationToken = default)
 {
     return(await ExecuteGetListAsync($"customers/{customerId}/addresses.json", "addresses", filter, cancellationToken));
 }
示例#37
0
        private static Expression ORExpressions(this ListFilter filter, Func <ListFilterValue, Expression> func)
        {
            var seed = Expression.Constant(false);

            return(filter.FilterValues.Aggregate <ListFilterValue, Expression>(seed, (expression, filter) => Expression.OrElse(expression, func(filter))));
        }
示例#38
0
		public Task<IEnumerable<List>> ForBoard(IBoardId board, ListFilter filter = ListFilter.Open)
		{
			return _restClient.RequestListAsync<List>(new ListsForBoardRequest(board, filter));
		}
 /// <summary>
 /// Gets a list of variants, optionally filtered to a given product.
 /// </summary>
 /// <param name="productId">The ID of the product that the variants belong to. If null, all variants from all products will be returned.</param>
 /// <param name="filter">Options for filtering the list.</param>
 /// <param name="cancellationToken">Cancellation Token</param>
 public virtual async Task <ListResult <ProductVariant> > ListAsync(long?productId, ListFilter <ProductVariant> filter, CancellationToken cancellationToken = default)
 {
     return(await ExecuteGetListAsync(
                productId != null && productId != 0
                ?$"products/{productId}/variants.json"
                : "variants.json",
                "variants",
                filter,
                cancellationToken
                ));
 }
示例#40
0
 public override GetListFilterDelegate GetFuncGetListFilter()
 {
     return () =>
         {
             ListFilter filter = new ListFilter("Pallet");
             filter.Conditions["Posted"].Active = true;
             filter.Conditions["MarkForDeleting"].Active = true;
             ( filter.Conditions["Posted"] as ConditionForBool ).Value.SingleValue = false;
             ( filter.Conditions["MarkForDeleting"] as ConditionForBool ).Value.SingleValue = false;
             return filter;
         };
 }
示例#41
0
        public IEnumerable <Employee> GetEmployees(ListFilter filter)
        {
            using (var db = new LogistoDb())
            {
                var query = from e in db.Employees
                            join p in db.Persons on e.PersonId equals p.ID
                            select new { e, p };

                // условия поиска

                if (!string.IsNullOrWhiteSpace(filter.Context))
                {
                    query = query.Where(w => w.e.Position.Contains(filter.Context) ||
                                        w.e.Comment.Contains(filter.Context) ||
                                        //
                                        w.p.DisplayName.Contains(filter.Context)
                                        );
                }

                if (!string.IsNullOrWhiteSpace(filter.Type))
                {
                    switch (filter.Type)
                    {
                    case "Our":
                        var ours = db.OurLegals.Select(s => s.LegalId).ToList();
                        query = query.Where(w => ours.Contains(w.e.LegalId));
                        break;
                    }
                }

                // сортировка
                if (!string.IsNullOrWhiteSpace(filter.Sort))
                {
                    if (string.IsNullOrWhiteSpace(filter.SortDirection))
                    {
                        filter.SortDirection = "Asc";
                    }

                    switch (filter.Sort)
                    {
                    case "ID":
                        if (filter.SortDirection == "Asc")
                        {
                            query = query.OrderBy(o => o.e.ID);
                        }
                        else
                        {
                            query = query.OrderByDescending(o => o.e.ID);
                        }

                        break;

                    case "EmployeeStatusId":
                        if (filter.SortDirection == "Asc")
                        {
                            query = query.OrderBy(o => o.e.EmployeeStatusId);
                        }
                        else
                        {
                            query = query.OrderByDescending(o => o.e.EmployeeStatusId);
                        }

                        break;

                    case "Name":
                        if (filter.SortDirection == "Asc")
                        {
                            query = query.OrderBy(o => o.p.DisplayName);
                        }
                        else
                        {
                            query = query.OrderByDescending(o => o.p.DisplayName);
                        }

                        break;

                    case "BeginDate":
                        if (filter.SortDirection == "Asc")
                        {
                            query = query.OrderBy(o => o.e.BeginDate);
                        }
                        else
                        {
                            query = query.OrderByDescending(o => o.e.BeginDate);
                        }

                        break;

                    case "EndDate":
                        if (filter.SortDirection == "Asc")
                        {
                            query = query.OrderBy(o => o.e.EndDate);
                        }
                        else
                        {
                            query = query.OrderByDescending(o => o.e.EndDate);
                        }

                        break;
                    }
                }

                // пейджинг

                if (filter.PageNumber > 0)
                {
                    query = query.Skip(filter.PageNumber * filter.PageSize);
                }

                if (filter.PageSize > 0)
                {
                    query = query.Take(filter.PageSize);
                }

                return(query.Select(s => s.e).ToList());
            }
        }
示例#42
0
 public IEnumerable<List> ForBoard(IBoardId board, ListFilter filter = ListFilter.Default)
 {
     return _restClient.Request<List<List>>(new ListsForBoardRequest(board, filter));
 }
示例#43
0
 public IEnumerable<List> GetByBoard(IBoardId board, ListFilter filter = ListFilter.Default)
 {
     Guard.NotNull(board, "board");
     return _restClient.Request<List<List>>(new BoardListsRequest(board, filter));
 }