/// <summary>
        /// Get items with a item request
        /// </summary>
        /// <param name="itemsRequest"></param>
        /// <returns></returns>
        public async Task <GetItemsResponse> GetItemsAsync(ItemsRequest itemsRequest)
        {
            if (!this._amazonResourceValidator.IsResourcesValid(itemsRequest.Resources, "GetItems"))
            {
                return(new GetItemsResponse {
                    Successful = false, ErrorMessage = "Resources has wrong values"
                });
            }

            var request = new GetItemsRequest
            {
                ItemIds     = itemsRequest.ItemIds,
                Resources   = itemsRequest.Resources,
                Merchant    = itemsRequest.Merchant,
                PartnerTag  = this._partnerTag,
                PartnerType = "Associates",
                Marketplace = $"www.{this._amazonEndpointConfig.Host}",
            };

            var json = JsonConvert.SerializeObject(request, this._jsonSerializerSettingsRequest);

            if (string.IsNullOrEmpty(json))
            {
                return(new GetItemsResponse {
                    Successful = false, ErrorMessage = "Cannot serialize object"
                });
            }

            var response = await this.RequestAsync("GetItems", json);

            return(this.DeserializeObject <GetItemsResponse>(response));
        }
Example #2
0
        public async Task <GetItemsResponse> GetItemsAsync(GetItemsRequest request)
        {
            try
            {
                Logger.Trace("GetItems start, request={@request}", request);

                if (request.PageNumber < 1 || request.PageSize < 1)
                {
                    return(new GetItemsResponse(false));
                }

                using (var context = ContextFactory.CreateDbContext())
                {
                    return(new GetItemsResponse(true,
                                                await context.Items
                                                .Where(item => item.ParentId.Equals(request.ParentGuid))
                                                .OrderBy(item => item.Title)
                                                .Skip((request.PageNumber - 1) * request.PageSize)
                                                .Take(request.PageSize)
                                                .ToListAsync()));
                }
            }
            catch (Exception exception)
            {
                Logger.Error(exception, exception.Message);

                return(new GetItemsResponse(false));
            }
        }
Example #3
0
        /// <summary>
        /// Retrieves items from the public catalog.
        /// </summary>
        public static async Task <PlayFabResult <GetItemsResponse> > GetItemsAsync(GetItemsRequest request, object customData = null, Dictionary <string, string> extraHeaders = null)
        {
            await new PlayFabUtil.SynchronizationContextRemover();

            var requestContext  = request?.AuthenticationContext ?? PlayFabSettings.staticPlayer;
            var requestSettings = PlayFabSettings.staticSettings;

            if (requestContext.EntityToken == null)
            {
                throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call Client Login or GetEntityToken before calling this method");
            }


            var httpResult = await PlayFabHttp.DoPost("/Catalog/GetItems", request, "X-EntityToken", requestContext.EntityToken, extraHeaders);

            if (httpResult is PlayFabError)
            {
                var error = (PlayFabError)httpResult;
                PlayFabSettings.GlobalErrorHandler?.Invoke(error);
                return(new PlayFabResult <GetItemsResponse> {
                    Error = error, CustomData = customData
                });
            }

            var resultRawJson = (string)httpResult;
            var resultData    = PluginManager.GetPlugin <ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject <PlayFabJsonSuccess <GetItemsResponse> >(resultRawJson);
            var result        = resultData.data;

            return(new PlayFabResult <GetItemsResponse> {
                Result = result, CustomData = customData
            });
        }
Example #4
0
        private void LoadPage()
        {
            var request = new GetItemsRequest
            {
                Page     = itemsPage,
                PageSize = itemsPageSize,
            };
            var items = Game.Api.GetItems(request).ToList();

            _items = items.Take(itemsPageSize).ToList();


            //var first = _items.First();

            //var res = Game.Api.RemoveTags(first.ID, "temp");

            //var it2 = Game.Api.GetItems(request).ToList();

            //foreach (var item in it2)
            //{
            //    var tags = item.Tags.ToList();
            //    var tStr = string.Join(",", tags);
            //}

            RenderItems();
        }
Example #5
0
        public GetItemsResponse GetItems(GetItemsRequest request)
        {
            GetItemsResponse viewModel = new GetItemsResponse();

            try
            {
                var viewedItems = request.CurrentPage * request.ItemsPerPage;

                // If the list isn't configurated in the settings, the application will not show it
                if (!_configuration.ItemLists.ItemLists.Any(il => il.ItemTypeOriginId.Equals(request.ItemTypeOriginId)))
                {
                    throw new Exception(string.Format("{1}{2}", _localizationErrorKey, "ListNotConfigurated"));
                }

                viewModel.Headers = _configuration.ItemLists.ItemLists
                                    .Single(il => il.ItemTypeOriginId.Equals(request.ItemTypeOriginId))
                                    .VisibleFields.Select(vf => new GetItemsResponse.Header()
                {
                    Name = vf.Name
                })
                                    .OrderBy(vf => vf.Name)
                                    .ToList();

                viewModel.Items = _dataContext.OR_Items
                                  .OrderByDescending(i => i.CreationDate)
                                  .Skip(viewedItems).Take(request.ItemsPerPage)
                                  .Where(i => i.ItemTypeOriginId.Equals(request.ItemTypeOriginId))
                                  .Select(i => new GetItemsResponse.Item()
                {
                    Id               = i.Id,
                    OriginId         = i.OriginId,
                    ItemTypeOriginId = i.ItemTypeOriginId,
                    CreationDate     = formatDate(i.CreationDate),
                    LastEditDate     = formatDate(i.LastEditDate),
                    Properties       = _dataContext.OR_Properties
                                       .Where(p => p.RelatedOriginId == i.OriginId)
                                       .Where(p => _configuration.ItemLists.ItemLists
                                              .Single(il => il.ItemTypeOriginId.Equals(request.ItemTypeOriginId))
                                              .VisibleFields.Select(vf => vf.Name).ToList()
                                              .Contains(p.Name))
                                       .Select(p => new GetItemsResponse.Property()
                    {
                        Id       = p.Id,
                        OriginId = p.OriginId,
                        Name     = p.Name,
                        Value    = p.Value
                    })
                                       .OrderBy(p => p.Name)
                                       .ToList()
                })
                                  .ToList();
            }
            catch (Exception exc)
            {
                viewModel.ResultInfo.Result       = Base.ResultInfoDto.ResultEnum.Error;
                viewModel.ResultInfo.ErrorMessage = exc.Message;
            }

            return(viewModel);
        }
Example #6
0
        public Response <PagedList <ItemDTO> > Get(
            int pageIndex            = 1,
            int pageSize             = 20,
            string status            = "",
            string primarySupplierId = "",
            string itemClsId         = "",
            string itemBrandId       = "",
            string itemDepartmentId  = "",
            string keyword           = "")
        {
            var request = new GetItemsRequest()
            {
                PageIndex         = pageIndex,
                PageSize          = pageSize,
                Status            = status,
                PrimarySupplierId = primarySupplierId,
                ItemClsId         = itemClsId,
                ItemBrandId       = itemBrandId,
                ItemDepartmentId  = itemDepartmentId,
                Keyword           = keyword
            };
            var response = _client.GetItems(request);

            return(new PagedList <ItemDTO>(response.Items, response.TotalCount));
        }
Example #7
0
        //#region Public Methods

        //public Base AddItem(AddItemRequest request)
        //{
        //    Base viewModel = new Base();

        //    try
        //    {
        //        // Prendo l'originId del tipo di item
        //        OR_ItemType itemType = GetItemType(request.ItemType);

        //        // Creo l'item
        //        Guid itemOriginId = Guid.NewGuid();
        //        OR_Item item = new OR_Item()
        //        {
        //            OriginId = itemOriginId,
        //            ItemTypeOriginId = itemType.OriginId,
        //            LastEditDate = DateTime.Now,
        //            CreationDate = DateTime.Now
        //        };
        //        _dataContext.OR_Items.Add(item);
        //        _dataContext.SaveChanges();

        //        // Per ogni input creo la relativa property
        //        foreach (AddItemRequest.Input input in request.Inputs)
        //        {
        //            Guid propertyOriginId = Guid.NewGuid();
        //            OR_Property property = new OR_Property()
        //            {
        //                OriginId = propertyOriginId,
        //                RelatedOriginId = item.OriginId,
        //                Name = input.Name,
        //                Value = input.Value
        //            };
        //            _dataContext.OR_Properties.Add(property);
        //        }

        //        // NB. Gli input vengono aggiornati automaticamente al submit
        //        _dataContext.SaveChanges();
        //    }
        //    catch (Exception exc)
        //    {
        //        viewModel.ResultInfo.Result = Base.ResultInfoDto.ResultEnum.Error;
        //        viewModel.ResultInfo.ErrorMessage = exc.Message;
        //    }

        //    return viewModel;
        //}

        public GetItemsResponse GetItemsToList(GetItemsRequest request)
        {
            GetItemsResponse viewModel = new GetItemsResponse();

            try
            {
                var viewedItems = request.CurrentPage * request.ItemsPerPage;

                // If the list isn't configurated in the settings, the application will not show it
                //if (!_configuration.ItemLists.ItemLists.Any(il => il.ItemTypeOriginId.Equals(request.ItemTypeOriginId)))
                //{
                //    throw new Exception(string.Format("{0}{1}", _localizationErrorKey, "ListNotConfigurated"));
                //}

                //viewModel.Headers = _configuration.ItemLists.ItemLists
                //                        .Single(il => il.ItemTypeOriginId.Equals(request.ItemTypeOriginId))
                //                        .VisibleFields.Select(vf => new GetItemsResponse.Header()
                //                        {
                //                            Name = vf.Name
                //                        })
                //                        .OrderBy(vf => vf.Name)
                //                        .ToList();

                viewModel.Items = _dataContext.OR_Items
                                  .OrderByDescending(i => i.CreationDate)
                                  .Skip(viewedItems).Take(request.ItemsPerPage)
                                  .Where(i => i.ItemTypeOriginId.Equals(request.ItemTypeOriginId))
                                  .Select(i => new GetItemsResponse.Item()
                {
                    Id               = i.Id,
                    OriginId         = i.OriginId.ToString(),
                    ItemTypeOriginId = i.ItemTypeOriginId.ToString(),
                    CreationDate     = FormatDate(i.CreationDate),
                    LastEditDate     = FormatDate(i.LastEditDate),
                    Properties       = _dataContext.OR_PropertyValues
                                       .Where(pv => pv.ItemOriginId == i.OriginId)
                                       .Join(_dataContext.OR_Properties,
                                             value => value.PropertyOriginId,
                                             property => property.OriginId,
                                             (value, property) => new GetItemsResponse.Property()
                    {
                        Id       = property.Id,
                        OriginId = property.OriginId.ToString(),
                        Name     = property.Name,
                        Value    = value.Value
                    })
                                       .OrderBy(p => p.Name)
                                       .ToList()
                })
                                  .ToList();
            }
            catch (Exception exc)
            {
                viewModel.ResultInfo.Result       = Base.ResultInfoDto.ResultEnum.Error;
                viewModel.ResultInfo.ErrorMessage = exc.Message;
            }

            return(viewModel);
        }
Example #8
0
        public Task <IList <Item> > Handle(GetItemsRequest request)
        {
            var domainBasket = _store.GetById(request.BasketId);

            var items = _mapper.Map <IList <Item> >(domainBasket?.Items);

            return(Task.FromResult(items));
        }
Example #9
0
        public void ExecuteRequestTest()
        {
            WebClient       webClient = new WebClient();
            GetItemsRequest request   = new GetItemsRequest();
            string          result    = webClient.ExecuteRequest(request);

            Assert.True(result.Length > 0);
        }
Example #10
0
        public async Task <IActionResult> Get(Guid basketId)
        {
            var request = new GetItemsRequest {
                BasketId = basketId
            };
            var items = await _mediator.Send(request);

            return(Ok(items));
        }
Example #11
0
        public override async Task GetItems(GetItemsRequest request, IServerStreamWriter <ItemResponse> responseStream, ServerCallContext context)
        {
            List <ItemResponse> items = _documentManager.GetItems(request);

            foreach (var item in items)
            {
                await responseStream.WriteAsync(item);
            }
        }
Example #12
0
        public Item Get(string SKU, List <string> Details, bool IncludeVariations = false, bool ApplyFiltersToVariations = false)
        {
            GetItemsRequest req = new GetItemsRequest()
            {
                Page     = 0,
                PageSize = 1,
                filters  = new List <RequestFilter>()
                {
                    new RequestFilter()
                    {
                        field  = "ProductSKU",
                        values = new List <string>()
                        {
                            SKU
                        }
                    }
                },
                ApplyFiltersToVariations = ApplyFiltersToVariations,
                IncludeVariations        = IncludeVariations
            };

            if (Details != null)
            {
                req.details = new List <ItemDetail>();
                Details.ForEach(x => req.details.Add(new ItemDetail()
                {
                    field = x
                }));
            }

            RestRequest elm = CreateRequest <GetItemsRequest>("Products/GetProducts", Method.POST, req);
            IRestResponse <PagedResponse <Item> > resp = Client.Execute <PagedResponse <Item> >(elm);

            if (resp.StatusCode == HttpStatusCode.OK)
            {
                if (resp.Data != null && resp.Data.TotalCount > 0)
                {
                    return(resp.Data.Content[0]);
                }
                else
                {
                    return(null);
                }
            }
            else if (resp.StatusCode == HttpStatusCode.Unauthorized)
            {
                throw new UnauthorizedException();
            }
            else
            {
                return(null);
            }
        }
Example #13
0
        public List <ItemResponse> GetItems(GetItemsRequest request)
        {
            List <ItemResponse> result = new List <ItemResponse>();
            List <Item>         items  = _unitOfWork.ItemRepository.GetActiveItemsByProvider(providerValue);

            foreach (var item in items)
            {
                result.Add(new ItemResponse {
                    Id = item.Id, Name = item.Name, ParentId = item.ParentItemId, ProjectId = item.ProjectId, Size = item.Size, TypeId = item.TypeId
                });
            }
            return(result);
        }
Example #14
0
        private IEnumerable <LightspeedProduct> GetItems(IEnumerable <Order> orders)
        {
            var itemIds         = orders.SelectMany(o => o.SaleLines.Select(sl => sl.ItemId)).ToHashSet();
            var getItemsRequest = new GetItemsRequest(itemIds);

            var result = new List <LightspeedProduct>();

            ActionPolicies.Submit.Do(
                () =>
            {
                result = _webRequestServices.GetResponse <LightspeedProductList>(getItemsRequest).Item.ToList();
            });

            return(result);
        }
        public async Task <IActionResult> GetItems([FromBody] GetItemsRequest getItemsRequest)
        {
            if (getItemsRequest.ItemsForSearch == null)
            {
                return(BadRequest(new FailedResponse {
                    Errors = new List <string> {
                        "The ItemsForSearch field is required"
                    }
                }));
            }

            var items = await _shopService.GetPaginatedItemsAsync(getItemsRequest);

            return(Ok(items));
        }
Example #16
0
        public async Task <PagedResponse <ItemResponse> > GetPaginatedItemsAsync(GetItemsRequest getItemsRequest)
        {
            var paginationFilter = _mapper.Map <PaginationFilter>(getItemsRequest.PaginationQuery);

            var items = _shopRepository.GetItems(getItemsRequest.ServerId,
                                                 getItemsRequest.CategoryId,
                                                 getItemsRequest.ItemsForSearch.ToLower(),
                                                 getItemsRequest.SortType,
                                                 getItemsRequest.Language);

            var paginatedItems = await RequestPaginationHelper.PaginateAsync(items, paginationFilter);

            var itemsResponse = _mapper.Map <ICollection <ItemResponse> >(paginatedItems);

            return(ResponsePaginationHelper.CreatePaginatedResponse(paginationFilter, itemsResponse, items.Count()));
        }
Example #17
0
        public GetItemsResponse ApiGetItems(GetItemsRequest getItemsRequest)
        {
            var getItemsResponse = new GetItemsResponse();

            try
            {
                getItemsResponse = this.ExecuteApiGetItems(getItemsRequest);
            }
            catch (Exception ex)
            {
                if (((HttpWebResponse)((WebException)ex.InnerException).Response).StatusCode == HttpStatusCode.Unauthorized)
                {
                    _apiAuthentication.GetToken(true);
                    getItemsResponse = this.ExecuteApiGetItems(getItemsRequest);
                }
            }

            return(getItemsResponse);
        }
Example #18
0
        public override Task <GetItemsResponse> GetItems(GetItemsRequest request, ServerCallContext context)
        {
            var page = _itemDao.Query(
                pageIndex: request.PageIndex,
                pageSize: request.PageSize,
                status: request.Status,
                primarySupplierId: request.PrimarySupplierId,
                itemClsId: request.ItemClsId,
                itemBrandId: request.ItemBrandId,
                itemDepartmentId: request.ItemDepartmentId,
                keyword: request.Keyword);

            var response = new GetItemsResponse();

            response.Items.AddRange(page.List.Select(item => _mapper.Map <ItemDTO>(item)));
            response.TotalCount = page.TotalCount;

            return(Task.FromResult(response));
        }
Example #19
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='request'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <IList <RepositoryItemMetadata> > GetListPostAsync(this IApiV1Item operations, GetItemsRequest request = default(GetItemsRequest), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.GetListPostWithHttpMessagesAsync(request, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
Example #20
0
        public JsonResult GetItems(GetItemsRequest request)
        {
            var viewModel = _service.GetItemsToList(request);

            return(Json(viewModel));
        }
Example #21
0
        public JsonResult GetItems(GetItemsRequest request)
        {
            var viewModel = service.GetItems(request);

            return(Json(viewModel, JsonRequestBehavior.DenyGet));
        }
Example #22
0
        public static PageModel<GoodsDetail> GetItems(int pageNum, string sort = "Default",
            int[] ids = null, int categoryId = 0, int areaid = 0, double maxprice = 0, double minprice = 0,
            int pageSize = 40, string w = null, int type = 1)
        {
            if (ids != null && ids.Any())
            {
                var r = GetItems(ids);
                return new PageModel<GoodsDetail>
                {
                    CurrentPage = 1,
                    Items = r,
                    ItemsPerPage = ids.Length,
                    TotalItems = r.Count,
                };
            }

            var request = new GetItemsRequest
            {
                Fields = "Id",
                PageNum = pageNum,
                PageSize = pageSize,
                ShopCatIds = categoryId > 0 ? categoryId.ToString() : "",
                Sorts = sort,
                ShopId = GlobeInfo.InitiatedShopId,
                ItemState = 1,
                SaleType = type
            };

            if (categoryId > 0)
            {
                request.ShopCatIds = categoryId.ToString();
            }

            if (w.IsNotNullOrEmpty())
            {
                request.ItemTitle = w.Trim();
            }

            if (areaid > 0)
            {
                request.AreaIds = areaid.ToString();
            }

            if (maxprice > 0)
            {
                request.MaxPrice = maxprice;
            }

            if (minprice > 0)
            {
                request.MinPrice = minprice;
            }

            var result = YunClient.Instance.Execute(request);
            if (!result.IsError && result.Items != null && result.Items.Any())
            {
                var d = GetItems(result.Items.Select(e => (int)e.Id).ToArray());
                return new PageModel<GoodsDetail>
                {
                    Items = d,
                    CurrentPage = pageNum,
                    ItemsPerPage = pageSize,
                    TotalItems = result.TotalItem,

                };
            }

            return new PageModel<GoodsDetail>();
        }
Example #23
0
        public static IList<GoodsDetail> GetFxItems(string w = null)
        {
            var r = new List<GoodsDetail>();
            var request = new GetItemsRequest
            {
                Fields = "Id",
                PageNum = 1,
                PageSize = 40,
                ShopId = GlobeInfo.InitiatedShopId,
                ItemState = 1,
                SaleType = 3,
                ItemTitle = w
            };
            var result = YunClient.Instance.Execute(request).Items;

            if (result != null && result.Any())
            {
                r.AddRange(result.Select(item => Commodity.GetShopItemDetail((int)item.Id)));
            }

            return r;
        }
Example #24
0
        public async Task Handle(GetItemsRequest request, IOutputPort <GetItemsResponse> outputPort)
        {
            GetItemsResponse response = await _itemRepository.GetItemsAsync(request);

            outputPort.Handle(response);
        }
Example #25
0
 private GetItemsResponse ExecuteApiGetItems(GetItemsRequest getItemsRequest)
 {
     return(base.ExecutePost <GetItemsResponse>("api/Commands/Comercial.Ecommerce.WebServices.GetItensCommand", getItemsRequest, _apiAuthentication._authToken.Token));
 }
 public Task <IActionResult> GetAllItems([FromQuery] GetItemsRequest request)
 {
     return(this.HandleRequest <GetItemsRequest, GetItemsResponse>(request));
 }
Example #27
0
 public KeyValuePair <int, byte[]>[] GetItems(GetItemsRequest request)
 {
     throw new NotImplementedException();
 }
Example #28
0
 /// <remarks/>
 public void GetItemsAsync(GetItemsRequest GetItemsRequest, object userState) {
     if ((this.GetItemsOperationCompleted == null)) {
         this.GetItemsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetItemsOperationCompleted);
     }
     this.InvokeAsync("GetItems", new object[] {
                 GetItemsRequest}, this.GetItemsOperationCompleted, userState);
 }
Example #29
0
 /// <remarks/>
 public void GetItemsAsync(GetItemsRequest GetItemsRequest) {
     this.GetItemsAsync(GetItemsRequest, null);
 }
Example #30
0
        public async Task <ServiceResponse <IEnumerable <IFileSystemItem> > > GetItems(GetItemsRequest request)
        {
            try
            {
                var items = _fileSystem.Items;

                if (!string.IsNullOrWhiteSpace(request.Filter))
                {
                    request.Filter = request.Filter.Replace("'", "\"");
                    items          = items.Where(request.Filter);
                }

                if (!string.IsNullOrWhiteSpace(request.OrderBy))
                {
                    items = items.OrderBy(request.OrderBy);
                }


                return(new ServiceResponse <IEnumerable <IFileSystemItem> >(items));
            }
            catch (Exception exception)
            {
                return(new ServiceResponse <IEnumerable <IFileSystemItem> >(exception));
            }
        }
Example #31
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='request'>
 /// </param>
 public static IList <RepositoryItemMetadata> GetListPost(this IApiV1Item operations, GetItemsRequest request = default(GetItemsRequest))
 {
     return(operations.GetListPostAsync(request).GetAwaiter().GetResult());
 }
Example #32
0
        /// <summary>
        /// 搜索商品
        /// </summary>
        /// <param name="page"></param>
        /// <param name="itemsperpage"></param>
        /// <param name="categoryId"></param>
        /// <param name="areaId"></param>
        /// <param name="title"></param>
        /// <param name="sort"></param>
        /// <param name="minPrice"></param>
        /// <param name="maxPrice"></param>
        /// <returns></returns>
        public static PageModel<GoodsDetail> Find(bool area, int page, int itemsperpage, int categoryId, int areaId, string title, string sort = "default", double minPrice = 0, double maxPrice = 0, int saleType = 1, int shopId = 0, string spid = "0", int itemcatid = 0, string recommend=null)
        {
            var init = new Yun.ClientCache.CacheFunc();
            List<GoodsDetailInSql> data = null;
            long totalItem = 0;

            if (title.IsNotNullOrEmpty() || spid != "0" || itemcatid > 0 || categoryId>0)
            {
                var itemss = new GetItemsRequest
                {
                    ItemTitle = title,
                    ShopCatIds = categoryId > 0 ? categoryId.ToString() : null,
                    Fields = "id",
                    PageNum = page,
                    PageSize = itemsperpage,
                    AreaIds = areaId > 0 ? areaId.ToString() : null,
                    Sorts = sort,
                    MinPrice = minPrice,
                    MaxPrice = maxPrice,
                    SaleType = saleType,
                    ShopId = shopId,
                    Recommend = recommend,
                    PropIds = spid != "0" ? spid : null,
                    Operation = "propids:and",
                    ItemCatIds = itemcatid > 0 ? itemcatid.ToString() : null
                };
                var r = YunClient.Instance.Execute(itemss);

                data = init.FetchAll<GoodsDetailInSql>(_cacheName, "id IN (" + string.Join(",", r.Items.Select(e => e.Id)) + ") " + GenerateSort(sort));

                totalItem = data.Count;
            }
            else
            {
                var sql="";
                if (area)
                {
                    sql = init.GenerateWhereSql(new List<WhereSql>
                {
                    new WhereSql("CompanyId", GlobeInfo.InitiatedCompanyId, true),
                    new WhereSql("ShopId", shopId, true),
                    new WhereSql("CategoryId", categoryId, true),
                    new WhereSql("AreaId", areaId, true),
                    new WhereSql("IsRecommend", recommend!=null?recommend=="1"?"True":"False":null, true),
                    new WhereSql("Price", minPrice, true, SqlOperatorsEnum.GreaterEqualThan),
                    new WhereSql("Price", maxPrice, true, SqlOperatorsEnum.LessEqualThan),
                    new WhereSql("SaleType",saleType, true),
                    new WhereSql("OffShelfTime", DateTime.Now.ToString(), true, SqlOperatorsEnum.GreaterThan),
                    new WhereSql("OnShelfTime", DateTime.Now.ToString(), true, SqlOperatorsEnum.LessEqualThan),
                });
                }
                else
                {
                    //不需要搜索文章标题的方法
                    sql = init.GenerateWhereSql(new List<WhereSql>
                {
                    new WhereSql("CompanyId", GlobeInfo.InitiatedCompanyId, true),
                    new WhereSql("ShopId", shopId, true),
                    new WhereSql("CategoryId", categoryId, true),
                    new WhereSql("AreaId", areaId, true),
                    new WhereSql("IsRecommend", recommend!=null?recommend=="1"?"True":"False":null, true),
                    new WhereSql("Price", minPrice, true, SqlOperatorsEnum.GreaterEqualThan),
                    new WhereSql("Price", maxPrice, true, SqlOperatorsEnum.LessEqualThan),
                    new WhereSql("SaleType",saleType, true),
                });
                
                }
                sql += GenerateSort(sort);

                data = init.FetchAll<GoodsDetailInSql>(page, itemsperpage, _cacheName, sql, out totalItem);
            }

            return new PageModel<GoodsDetail>
            {
                CurrentPage = page,
                Items = data.ConvertAll(GoodsDetailInSql.ConvertGoodsDetail),
                ItemsPerPage = itemsperpage,
                TotalItems = totalItem,
            };
        }
Example #33
0
        /// <param name='request'>
        /// </param>
        /// <param name='customHeaders'>
        /// Headers that will be added to request.
        /// </param>
        /// <param name='cancellationToken'>
        /// The cancellation token.
        /// </param>
        /// <exception cref="HttpOperationException">
        /// Thrown when the operation returned an invalid status code
        /// </exception>
        /// <exception cref="SerializationException">
        /// Thrown when unable to deserialize the response
        /// </exception>
        /// <return>
        /// A response object containing the response body and response headers.
        /// </return>
        public async Task <HttpOperationResponse <IList <RepositoryItemMetadata> > > GetListPostWithHttpMessagesAsync(GetItemsRequest request = default(GetItemsRequest), Dictionary <string, List <string> > customHeaders = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            // Tracing
            bool   _shouldTrace  = ServiceClientTracing.IsEnabled;
            string _invocationId = null;

            if (_shouldTrace)
            {
                _invocationId = ServiceClientTracing.NextInvocationId.ToString();
                Dictionary <string, object> tracingParameters = new Dictionary <string, object>();
                tracingParameters.Add("request", request);
                tracingParameters.Add("cancellationToken", cancellationToken);
                ServiceClientTracing.Enter(_invocationId, this, "GetListPost", tracingParameters);
            }
            // Construct URL
            var _baseUrl = Client.BaseUri.AbsoluteUri;
            var _url     = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "api/v1/item/_getList").ToString();
            // Create HTTP transport objects
            var _httpRequest = new HttpRequestMessage();
            HttpResponseMessage _httpResponse = null;

            _httpRequest.Method     = new HttpMethod("POST");
            _httpRequest.RequestUri = new System.Uri(_url);
            // Set Headers


            if (customHeaders != null)
            {
                foreach (var _header in customHeaders)
                {
                    if (_httpRequest.Headers.Contains(_header.Key))
                    {
                        _httpRequest.Headers.Remove(_header.Key);
                    }
                    _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value);
                }
            }

            // Serialize Request
            string _requestContent = null;

            if (request != null)
            {
                _requestContent      = Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(request, Client.SerializationSettings);
                _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8);
                _httpRequest.Content.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8");
            }
            // Send Request
            if (_shouldTrace)
            {
                ServiceClientTracing.SendRequest(_invocationId, _httpRequest);
            }
            cancellationToken.ThrowIfCancellationRequested();
            _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false);

            if (_shouldTrace)
            {
                ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse);
            }
            HttpStatusCode _statusCode = _httpResponse.StatusCode;

            cancellationToken.ThrowIfCancellationRequested();
            string _responseContent = null;

            if ((int)_statusCode != 200)
            {
                var ex = new HttpOperationException(string.Format("Operation returned an invalid status code '{0}'", _statusCode));
                if (_httpResponse.Content != null)
                {
                    _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
                }
                else
                {
                    _responseContent = string.Empty;
                }
                ex.Request  = new HttpRequestMessageWrapper(_httpRequest, _requestContent);
                ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent);
                if (_shouldTrace)
                {
                    ServiceClientTracing.Error(_invocationId, ex);
                }
                _httpRequest.Dispose();
                if (_httpResponse != null)
                {
                    _httpResponse.Dispose();
                }
                throw ex;
            }
            // Create Result
            var _result = new HttpOperationResponse <IList <RepositoryItemMetadata> >();

            _result.Request  = _httpRequest;
            _result.Response = _httpResponse;
            // Deserialize Response
            if ((int)_statusCode == 200)
            {
                _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);

                try
                {
                    _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject <IList <RepositoryItemMetadata> >(_responseContent, Client.DeserializationSettings);
                }
                catch (JsonException ex)
                {
                    _httpRequest.Dispose();
                    if (_httpResponse != null)
                    {
                        _httpResponse.Dispose();
                    }
                    throw new SerializationException("Unable to deserialize the response.", _responseContent, ex);
                }
            }
            if (_shouldTrace)
            {
                ServiceClientTracing.Exit(_invocationId, _result);
            }
            return(_result);
        }