Ejemplo n.º 1
0
        public static List <PackageItem> GetList(int pageIndex, int pageSize, string pageOrder)
        {
            using (var db = OnlineStoreDbContext.Entity)
            {
                var now   = DateTime.Now;
                var query = from item in db.Packages
                            where item.StartDate <= now &&
                            item.EndDate >= now &&
                            item.PackageStatus == PackageStatus.Approved
                            select new PackageItem
                {
                    ID           = item.ID,
                    Title        = item.Title,
                    PackageScore = item.PackageScore,
                    ImageFile    = (from image in db.PackageImages
                                    where image.PackageID == item.ID &&
                                    image.PackageImagePlace == ProductImagePlace.Home
                                    select image.Filename
                                    ).FirstOrDefault(),
                    OrderID = item.OrderID
                };


                if (!string.IsNullOrWhiteSpace(pageOrder))
                {
                    query = query.OrderBy(pageOrder);
                }

                query = query.Skip(pageIndex * pageSize).Take(pageSize);

                var result = query.ToList();

                foreach (var item in result)
                {
                    var Prices = PackageProducts.GetByPackageID(item.ID);

                    item.OldPrice  = Prices.Sum(p => p.OldPrice);
                    item.NewPrice  = Prices.Sum(p => p.NewPrice);
                    item.ImageFile = UrlProvider.GetPackageImage(item.ImageFile, StaticValues.DefaultProductImageSize);
                    item.Url       = UrlProvider.GetPackageUrl(item.Title, item.ID);
                }

                return(result);
            }
        }
Ejemplo n.º 2
0
        public static List <ViewCartItem> GetByCartID(int cartID, string userID)
        {
            using (var db = OnlineStoreDbContext.Entity)
            {
                var query = from item in db.CartItems
                            where item.CartID == cartID
                            select new ViewCartItem()
                {
                    ID = item.ID,

                    ProductVarientID = item.ProductVarientID,
                    ProductID        = item.ProductID,
                    PackageID        = item.PackageID,

                    Quantity = item.Quantity
                };

                var result = query.ToList();
                foreach (var item in result)
                {
                    if (item.ProductVarientID.HasValue || item.ProductID.HasValue)
                    {
                        var priceItem = new PriceItem();

                        if (item.ProductVarientID.HasValue)
                        {
                            var productVarient = ProductVarients.GetByID(item.ProductVarientID.Value);

                            item.CartProductID = productVarient.ProductID;
                            item.Price         = ProductVarientPrices.GetPriceByProductVarientID(item.ProductVarientID.Value);

                            priceItem.ID = item.ProductVarientID.Value;
                        }
                        else if (item.ProductID.HasValue)
                        {
                            item.CartProductID = item.ProductID.Value;
                        }

                        var product = Products.GetByID(item.CartProductID);
                        var group   = Groups.GetByID(product.GroupID.Value);

                        product.Title    = group.Perfix + " " + product.Title;
                        product.Title_En = product.Title_En + " " + group.Perfix_En;

                        item.Title = product.DisplayTitle;

                        item.Image = (from img in db.ProductImages
                                      where img.ProductID == item.CartProductID &&
                                      img.ProductImagePlace == ProductImagePlace.Home
                                      select img.Filename).FirstOrDefault();

                        item.HasVarients = product.HasVarients;

                        item.Image = UrlProvider.GetProductImage(item.Image, StaticValues.MiniCartProductImageSize);

                        item.Url = UrlProvider.GetProductUrl(item.CartProductID, group.UrlPerfix, product.UrlPerfix);

                        #region Prices

                        if (item.ProductVarientID.HasValue)
                        {
                            item.VarientTitle = ProductVarientAttributes.GetVarients(item.ProductVarientID.Value);
                        }
                        else if (item.ProductID.HasValue)
                        {
                            item.Price = (from price in db.ProductPrices
                                          where price.ProductID == item.CartProductID &&
                                          price.PriceType == PriceType.Sell
                                          orderby price.LastUpdate descending
                                          select price.Price).FirstOrDefault();
                        }

                        priceItem.Price = item.Price;
                        var prices = new List <PriceItem>()
                        {
                            priceItem
                        };

                        var productID = (item.ProductID.HasValue ? item.ProductID.Value : ProductVarients.GetProductID(item.ProductVarientID.Value));

                        Products.SetDiscounts(userID, product.ID, product.HasVarients, prices);

                        item.DiscountPercent = priceItem.DiscountPercent;
                        item.DiscountPrice   = priceItem.DiscountPrice;

                        #endregion Prices

                        DateTime now = DateTime.Now;

                        var gifts = (from gift in db.ProductGifts
                                     where ((item.ProductID != null && gift.ProductID == item.ProductID) ||
                                            (item.ProductID == null && gift.ProductID == item.CartProductID)) &&
                                     gift.StartDate <= now && gift.EndDate >= now
                                     select new ViewCartItemGift
                        {
                            ID = gift.ID,
                            ProductID = gift.ProductID,
                            GiftTitle = gift.Gift.Title,
                            GiftID = gift.GiftID
                        }).ToList();

                        foreach (var gift in gifts)
                        {
                            var gProduct = Products.GetByID(gift.GiftID);
                            var gGroup   = Groups.GetByID(gProduct.GroupID.Value);
                            gift.Url = UrlProvider.GetProductUrl(gProduct.ID, gGroup.UrlPerfix, gProduct.UrlPerfix);

                            var giftPrices = Products.GetProductPrices(gift.GiftID, false, PriceType.Sell);
                            var price      = giftPrices.LastOrDefault();

                            if (price != null)
                            {
                                gift.Price = price.Price;
                            }
                        }

                        item.Gifts = gifts;

                        item.IsFreeDelivery = product.IsFreeDelivery;
                    }
                    else if (item.PackageID.HasValue)
                    {
                        var package = Packages.GetByID(item.PackageID.Value);

                        item.Title = package.Title;

                        item.Image = (from img in db.PackageImages
                                      where img.PackageID == package.ID &&
                                      img.PackageImagePlace == ProductImagePlace.Home
                                      select img.Filename).FirstOrDefault();

                        item.Image = UrlProvider.GetPackageImage(item.Image, StaticValues.MiniCartProductImageSize);

                        item.Url = UrlProvider.GetPackageUrl(item.Title, item.PackageID.Value);

                        #region Prices

                        var products = PackageProducts.GetProducts(item.PackageID.Value);

                        item.Price           = products.Sum(a => a.OldPrice);
                        item.DiscountPrice   = products.Sum(a => a.NewPrice);
                        item.DiscountPercent = (item.Price * 100) / item.DiscountPrice;

                        #endregion Prices
                    }
                }

                return(result);
            }
        }