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); } }
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); } }