public async Task<IHttpActionResult> GetCollectionsByProductIdAsync(int productId, int? limit = null, int? page = null, CatalogSortBy? sortBy = null)
        {
            IHttpActionResult result = null;

            await _collectionService.GetCollectionsAsync(productId, limit, page, sortBy)
                .Success(collections =>
                {
                    if (collections == null)
                    {
                        result = StatusCode(HttpStatusCode.NoContent);
                    }

                    var collectionModels = Mapper.Map<IList<CollectionModel>>(collections);
                    result = Ok(collectionModels);
                })
                .Error(err =>
                {
                    switch (err.CodeNumber)
                    {
                        case 404:
                            result = NotFound();
                            break;
                        default:
                            result = BadRequest();
                            break;
                    }
                });

            return result;
        }
        /// <summary>
        /// Will sort the product collection passed in depending on the sort by.
        /// </summary>
        /// <param name="products">The product collection to sort.</param>
        /// <param name="sortBy">The type of sorting.</param>
        public static void SortProducts(ProductCollection products, CatalogSortBy sortBy)
        {
            switch (sortBy)
            {
            case CatalogSortBy.PriceAscending:
                products.Sort(delegate(Product p1, Product p2) {
                    return(p1.OurPrice.CompareTo(p2.OurPrice));
                });
                break;

            case CatalogSortBy.PriceDescending:
                products.Sort(delegate(Product p1, Product p2) {
                    return(p2.OurPrice.CompareTo(p1.OurPrice));
                });
                break;

            case CatalogSortBy.TitleAscending:
                products.Sort(delegate(Product p1, Product p2) {
                    return(p1.Name.CompareTo(p2.Name));
                });
                break;

            case CatalogSortBy.TitleDescending:
                products.Sort(delegate(Product p1, Product p2) {
                    return(p2.Name.CompareTo(p1.Name));
                });
                break;

            case CatalogSortBy.DateUpdatedAscending:
                products.Sort(delegate(Product p1, Product p2) {
                    return(p2.CreatedOn.CompareTo(p1.CreatedOn));
                });
                break;

            case CatalogSortBy.DateCreatedAscending:
                products.Sort(delegate(Product p1, Product p2) {
                    return(p1.CreatedOn.CompareTo(p2.CreatedOn));
                });
                break;

            case CatalogSortBy.DateCreatedDescending:
                products.Sort(delegate(Product p1, Product p2) {
                    return(p2.ModifiedOn.CompareTo(p1.ModifiedOn));
                });
                break;

            case CatalogSortBy.DateUpdatedDescending:
                products.Sort(delegate(Product p1, Product p2) {
                    return(p1.ModifiedOn.CompareTo(p2.ModifiedOn));
                });
                break;
            }
        }
Beispiel #3
0
 /// <summary>
 /// Will sort the product collection passed in depending on the sort by.
 /// </summary>
 /// <param name="products">The product collection to sort.</param>
 /// <param name="sortBy">The type of sorting.</param>
 public static void SortProducts(ProductCollection products, CatalogSortBy sortBy)
 {
     switch (sortBy) {
     case CatalogSortBy.PriceAscending:
       products.Sort(delegate(Product p1, Product p2) {
     return p1.OurPrice.CompareTo(p2.OurPrice);
       });
       break;
     case CatalogSortBy.PriceDescending:
       products.Sort(delegate(Product p1, Product p2) {
     return p2.OurPrice.CompareTo(p1.OurPrice);
       });
       break;
     case CatalogSortBy.TitleAscending:
       products.Sort(delegate(Product p1, Product p2) {
     return p1.Name.CompareTo(p2.Name);
       });
       break;
     case CatalogSortBy.TitleDescending:
       products.Sort(delegate(Product p1, Product p2) {
     return p2.Name.CompareTo(p1.Name);
       });
       break;
     case CatalogSortBy.DateUpdatedAscending:
       products.Sort(delegate(Product p1, Product p2) {
     return p2.CreatedOn.CompareTo(p1.CreatedOn);
       });
       break;
     case CatalogSortBy.DateCreatedAscending:
       products.Sort(delegate(Product p1, Product p2) {
     return p1.CreatedOn.CompareTo(p2.CreatedOn);
       });
       break;
     case CatalogSortBy.DateCreatedDescending:
       products.Sort(delegate(Product p1, Product p2) {
     return p2.ModifiedOn.CompareTo(p1.ModifiedOn);
       });
       break;
     case CatalogSortBy.DateUpdatedDescending:
       products.Sort(delegate(Product p1, Product p2) {
     return p1.ModifiedOn.CompareTo(p2.ModifiedOn);
       });
       break;
       }
 }
Beispiel #4
0
 public IList<Product> GetProductsByCollection(int collectionId, string filterByTag = null, int pageSize = ShopTimeSetting.PageSize, int pageIndex = 0,
     CatalogSortBy sortBy = CatalogSortBy.DiplayNameAsc)
 {
     throw new NotImplementedException();
 }
Beispiel #5
0
 public IList<Product> GetProducts(int pageSize = ShopTimeSetting.PageSize, int pageIndex = 0, CatalogSortBy sortBy = CatalogSortBy.DiplayNameAsc)
 {
     throw new NotImplementedException();
 }
 public async Task<IResult<IList<Collection>>> GetCollectionsAsync(int? productId = null, int? limit = null, int? page = null, CatalogSortBy? sortBy = null, bool isTracking = false)
 {
     throw new NotImplementedException();
 }
        public async Task<IResult<IList<Collection>>> GetCollectionsAsync(int? limit = null, int? page = null, CatalogSortBy? sortBy = null, bool isTracking = true)
        {
            IResult<IList<Collection>> result = null;

            var pager = new Pager(limit, page);

            try
            {
                var collectionQry = _collectionRepo.Table.Where(obj => obj.StoreId == _token.Store.Id && obj.IsDeleted == false);
                        

                switch(sortBy)
                {
                    case CatalogSortBy.DiplayNameAsc:
                        collectionQry = collectionQry.OrderBy(obj => obj.DisplayName);
                        break;
                    default:
                        collectionQry = collectionQry.OrderBy(obj => obj.Id);
                        break;
                }

                collectionQry = collectionQry.Skip(pager.Skip).Take(pager.Take);

                IList<Collection> collections = null;
                if (isTracking)
                {
                    collections = collectionQry.ToList();
                }
                else
                {
                    collections = collectionQry.AsNoTracking().ToList();
                }

                result = new ShopTimeResult<IList<Collection>>(collections);
            }
            catch (Exception ex)
            {
                result = new ShopTimeResult<IList<Collection>>
                {
                    Error = new Error() { CodeNumber = 500, Message = ex.Message }
                };
            }

            return result;
        }
        public IHttpActionResult GetProductsByCollectionId(int collectionId, int? limit = null, int? page = null, CatalogSortBy? sortBy = null)
        {
            IHttpActionResult result = null;

            return result;
        }