Esempio n. 1
0
        private static StringBuilder refreshAll()
        {
            var latest = new StringBuilder();

            var products = Products.GetLatest();
            var posts    = Articles.GetLatest();
            var result   = products.Union(posts);

            result = result.OrderByDescending(item => item.Date);

            latest.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            latest.Append("<rss version=\"2.0\">");
            latest.Append("<channel xmlns:atom=\"http://www.w3.org/2005/Atom\">");
            latest.Append("<title>آخرین های آنلاین استور</title>");
            latest.Append("<link>" + StaticValues.WebsiteUrl + "</link>");
            latest.Append("<description>" + StaticValues.WebsiteDescription + "</description>");
            latest.Append("<language>fa-IR</language>");
            latest.Append("<copyright>Copyright " + DateTime.Now.Year + " " + StaticValues.WebsiteTitle + ". All rights reserved.</copyright>");
            latest.Append("<lastBuildDate>" + RSSDateFormat(result.First().Date) + "</lastBuildDate>");

            foreach (var item in result)
            {
                string url = String.Empty;

                if (item.Type == RSSRowType.Product)
                {
                    var group = Groups.GetByID(item.GroupID.Value);

                    url = (StaticValues.WebsiteUrl + UrlProvider.GetProductUrl(item.ID, group.UrlPerfix, item.UrlPerfix)).HtmlEncode();
                }
                else
                {
                    var group = Groups.GetByID(item.GroupID.Value);

                    url = (StaticValues.WebsiteUrl + UrlProvider.GetPostUrl(item.ID, item.Title_Fa, group.TitleEn)).HtmlEncode();
                }

                latest.Append("<item>");
                latest.Append("<guid isPermaLink=\"true\">" + url + "</guid>");
                latest.Append("<link>" + url + "</link>");
                latest.Append("<category>" + item.GroupTitle.HtmlEncode() + "</category>");
                latest.Append("<title>" + item.UrlPerfix.HtmlEncode() + "</title>");

                latest.Append("<description>");
                latest.Append(("<img src='" + (item.Type == RSSRowType.Product
                                                                                 ? UrlProvider.GetProductImage(item.Image, StaticValues.DefaultProductImageSize)
                                                                                 : UrlProvider.GetPostImage(item.Image, StaticValues.DefaultProductImageSize)) + "' />").HtmlEncode());
                latest.Append(("<br/>").HtmlEncode());
                latest.Append(item.Summary.HtmlEncode());
                latest.Append("</description>");

                latest.Append("<pubDate>" + RSSDateFormat(item.Date) + "</pubDate>");
                latest.Append("</item>");
            }

            latest.Append("</channel>");
            latest.Append("</rss>");

            return(latest);
        }
Esempio n. 2
0
        public JsonResult Search(string title, List <int> groupIDs)
        {
            var jsonSuccessResult = new JsonSuccessResult();

            try
            {
                var list = Products.GetByGroupIDs(title, groupIDs);

                foreach (var item in list)
                {
                    item.ImageFile = UrlProvider.GetProductImage(item.ImageFile, StaticValues.DefaultProductImageSize);
                    item.Varients  = ProductVarients.GetShortVarientByProductID(item.ID);
                }

                jsonSuccessResult.Success = true;
                jsonSuccessResult.Data    = list;
            }
            catch (Exception ex)
            {
                jsonSuccessResult.Errors  = new string[] { ex.Message };
                jsonSuccessResult.Success = false;
            }

            return(new JsonResult()
            {
                Data = jsonSuccessResult
            });
        }
Esempio n. 3
0
        private static StringBuilder refreshProducts()
        {
            var latestProducts = new StringBuilder();

            var products = Products.GetLatestProducts();

            latestProducts.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");

            latestProducts.Append("<rss version=\"2.0\">");
            latestProducts.Append("<channel xmlns:atom=\"http://www.w3.org/2005/Atom\">");
            latestProducts.Append("<title>آخرین محصولات آنلاین استور</title>");
            latestProducts.Append("<link>" + StaticValues.WebsiteUrl + "</link>");
            latestProducts.Append("<description>" + StaticValues.WebsiteDescription + "</description>");
            latestProducts.Append("<language>fa-IR</language>");
            latestProducts.Append("<copyright>Copyright " + DateTime.Now.Year + " " + StaticValues.WebsiteTitle + ". All rights reserved.</copyright>");
            latestProducts.Append("<lastBuildDate>" + RSSDateFormat(products.First().CreatedDate) + "</lastBuildDate>");

            foreach (var item in products)
            {
                var    group = Groups.GetByID(item.GroupID.Value);
                string url   = (StaticValues.WebsiteUrl + UrlProvider.GetProductUrl(item.ID, group.UrlPerfix, item.UrlPerfix)).HtmlEncode();

                latestProducts.Append("<item>");
                latestProducts.Append("<guid isPermaLink=\"true\">" + url + "</guid>");
                latestProducts.Append("<link>" + url + "</link>");
                latestProducts.Append("<category>" + group.Title.HtmlEncode() + "</category>");
                latestProducts.Append("<title>" + (item.Title_En + " - " + item.Title_Fa).HtmlEncode() + "</title>");

                latestProducts.Append("<description>");
                latestProducts.Append(("<img src='" + UrlProvider.GetProductImage(item.ImageFile, StaticValues.DefaultProductImageSize) + "' />").HtmlEncode());
                latestProducts.Append(("<br/>").HtmlEncode());
                latestProducts.Append(item.Summary.HtmlEncode());
                latestProducts.Append("</description>");

                latestProducts.Append("<pubDate>" + RSSDateFormat(item.CreatedDate) + "</pubDate>");
                latestProducts.Append("</item>");
            }

            latestProducts.Append("</channel>");
            latestProducts.Append("</rss>");

            return(latestProducts);
        }
        private JsonProductCompare GetJsonProductCompare(int productID, int groupID)
        {
            var product = Products.GetDetails(productID);

            var group = Groups.GetByID(groupID);

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

            var url = UrlProvider.GetProductUrl(productID, group.UrlPerfix, product.UrlPerfix);

            #region Image File

            string fileName = "";

            var imageInfo = ProductImages.GetDefaultImage(productID);

            if (imageInfo != null)
            {
                fileName = imageInfo.Filename;
            }
            var image = UrlProvider.GetProductImage(fileName,
                                                    StaticValues.ThumbnailProductImageSize);

            #endregion Image File

            #region Scores

            float totalScore = Utilities.CalcRaty(product.SumScore.Value, product.ScoreCount, product.ProductScore);

            List <ScoresAverage> scoresAverages = ScoreParameterValues.CalculateAverage(productID);

            #endregion Scores

            #region Attributes

            var groups    = ProductGroups.GetByProductID(productID).Select(item => item.GroupID).ToList();
            var attrbutes = Attributes.GetByGroupIDs(groups);
            foreach (var item in attrbutes)
            {
                item.Value = AttributeValues.GetValue(productID, item.ID);

                if (item.Value != null)
                {
                    item.Value = AttributeValues.RenderValue(item);
                }
            }

            #endregion Attributes

            #region Prices

            product.Prices = Products.GetProductPrices(product.ID, product.HasVarients, PriceType.Sell);

            string userID = null;
            if (User.Identity.IsAuthenticated)
            {
                userID = UserID;
            }

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

            #endregion Prices

            var productItem = new JsonProductCompare
            {
                ProductID        = productID,
                DisplayTitleType = product.DisplayTitleType,
                Title_Fa         = product.Title,
                Title_En         = product.Title_En,
                Url                = url,
                Prices             = product.Prices,
                Image              = image,
                Score              = totalScore,
                PreferentialsCount = product.ScoreCount + 1,
                Attributes         = attrbutes,
                ScoresAverages     = scoresAverages,
                GroupID            = groupID,
                IsUnavailable      = product.IsUnavailable
            };

            return(productItem);
        }
Esempio n. 5
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);
            }
        }