public ContentResult Products(string id) { var groupTitle = id.DeNormalizeForUrl(); var group = Groups.GetByTitle(groupTitle, GroupType.Products); StringBuilder sb = new StringBuilder(); sb.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); sb.Append("<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">"); foreach (var item in DataLayer.Products.GetByGroupID(group.ID)) { item.Title = group.Perfix + " " + item.Title; item.Title_En = item.Title_En + " " + group.Perfix_En; var lastestDate = item.LastUpdate; sb.Append(" <url>"); sb.Append(" <loc>" + StaticValues.WebsiteUrl + UrlProvider.GetProductUrl(item.ID, group.UrlPerfix, item.UrlPerfix) + "</loc>"); sb.Append(" <lastmod>" + lastestDate.ToString("yyyy-MM-dd") + "</lastmod>"); sb.Append(" </url>"); } sb.Append("</urlset>"); return(Content(sb.ToString(), "text/xml")); }
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); }
public static List <ViewOrderItem> GetOrderItems(int id) { using (var db = OnlineStoreDbContext.Entity) { var cartItem = from item in db.CartItems where item.CartID == id select new ViewOrderItem { ProductTitle = item.ProductVarient != null ? item.ProductVarient.Product.Title : item.Product.Title, GroupID = item.ProductVarient != null ? item.ProductVarient.Product.GroupID.Value : item.Product.GroupID.Value, Price = item.Price, Quantity = item.Quantity, DateTime = item.DateTime, ProductID = item.ProductVarient != null ? item.ProductVarient.ProductID : item.ProductID.Value, ProductVarentID = item.ProductVarientID, Gifts = (from gift in db.CartItemGifts where gift.CartItemID == item.ID select new ViewCartItemGift { ID = gift.ID, GiftTitle = gift.Gift.Title, GiftID = gift.GiftID, Price = gift.Price }).ToList() }; var result = cartItem.ToList(); foreach (var item in result) { if (item.ProductVarentID.HasValue) { item.VarientTitle = ProductVarientAttributes.GetVarients(item.ProductVarentID.Value); } foreach (var gift in item.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 group = Groups.GetByID(item.GroupID); item.ProductTitle = group.Perfix + " " + item.ProductTitle; } return(result); } }
public JsonResult AjaxList( int pageIndex, int pageSize, string pageOrder) { if (pageIndex > 0) { pageIndex = pageIndex - 1; } else { pageIndex = 0; } var jsonSuccessResult = new JsonSuccessResult(); try { var productList = Products.GetSpecialOffers(pageIndex, pageSize, pageOrder); var count = Products.CountSpecialOffers(); var totalPages = (int)Math.Ceiling((decimal)count / pageSize); var paging = Utilities.MakePaging(totalPages, pageIndex + 1); foreach (var item in productList) { var group = Groups.GetByID(item.GroupID.Value); item.Url = UrlProvider.GetProductUrl(item.ID, group.UrlPerfix, item.UrlPerfix); } var model = new SpecialOfferSettings { Products = productList, Paging = paging, TotalPages = totalPages, CurrentPageIndex = pageIndex }; Products.FillProductItems(UserID, model.Products, StaticValues.DefaultProductImageSize); jsonSuccessResult.Data = model; jsonSuccessResult.Success = true; } catch (Exception ex) { jsonSuccessResult.Errors = new string[] { ex.Message }; jsonSuccessResult.Success = false; } return(new JsonResult() { Data = jsonSuccessResult }); }
private static StringBuilder refreshComments(int productID) { var latestComments = new StringBuilder(); var productTitle = Products.GetTitleByID(productID); var comments = ScoreComments.GetLatestComments(productID); latestComments.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); latestComments.Append("<rss version=\"2.0\">"); latestComments.Append("<channel xmlns:atom=\"http://www.w3.org/2005/Atom\">"); latestComments.Append("<title>آخرین نظرات محصول " + productTitle + "</title>"); latestComments.Append("<link>" + StaticValues.WebsiteUrl + "</link>"); latestComments.Append("<description>" + StaticValues.WebsiteDescription + "</description>"); latestComments.Append("<language>fa-IR</language>"); latestComments.Append("<copyright>Copyright " + DateTime.Now.Year + " " + StaticValues.WebsiteTitle + ". All rights reserved.</copyright>"); latestComments.Append("<lastBuildDate>"); latestComments.Append(comments.Count > 0 ? RSSDateFormat(comments.First().LastUpdate) : ""); latestComments.Append("</lastBuildDate>"); foreach (var item in comments) { var product = Products.GetByID(item.ProductID); var group = Groups.GetByID(product.GroupID.Value); string url = (StaticValues.WebsiteUrl + UrlProvider.GetProductUrl(item.ProductID, group.UrlPerfix, product.UrlPerfix)).HtmlEncode(); latestComments.Append("<item>"); latestComments.Append("<guid isPermaLink=\"true\">" + url + "</guid>"); latestComments.Append("<link>" + url + "</link>"); latestComments.Append("<category>" + group.Title.HtmlEncode() + "</category>"); latestComments.AppendFormat("<title> نظر شماره {0} در {1}</title>", item.ID, (product.Title_En + " - " + product.Title).HtmlEncode()); latestComments.Append("<description>"); latestComments.Append(item.Text.HtmlEncode()); latestComments.Append("</description>"); latestComments.Append("<pubDate>" + RSSDateFormat(item.LastUpdate) + "</pubDate>"); latestComments.Append("</item>"); } latestComments.Append("</channel>"); latestComments.Append("</rss>"); return(latestComments); }
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); }
public JsonResult AjaxList( string keywordTitle, int pageIndex, int pageSize, string pageOrder) { if (pageIndex > 0) { pageIndex = pageIndex - 1; } else { pageIndex = 0; } var jsonSuccessResult = new JsonSuccessResult(); try { keywordTitle = keywordTitle.DeNormalizeForUrl(); var keyword = Keywords.GetByTitle(keywordTitle); ViewBag.Title = keyword.Title; int count; var productList = Products.GetList(pageIndex, pageSize, pageOrder, out count, keywordID: keyword.ID); var totalPages = (int)Math.Ceiling((decimal)count / pageSize); var paging = Utilities.MakePaging(totalPages, pageIndex + 1); foreach (var item in productList) { var group = Groups.GetByID(item.GroupID.Value); item.Url = UrlProvider.GetProductUrl(item.ID, group.UrlPerfix, item.UrlPerfix); } var title = "کلیدواژه (" + keywordTitle + ")"; if (pageIndex > 0) { title += " صفحه - " + (pageIndex + 1); } ViewBag.Title = title + " - " + StaticValues.WebsiteTitle; ViewBag.OriginalUrl = "/tags/" + keywordTitle; ViewBag.CanonicalUrl = ViewBag.OriginalUrl + "/" + (pageIndex + 1); var model = new TagsSettings { Products = productList, Paging = paging, TotalPages = totalPages, CurrentPageIndex = pageIndex, OriginalUrl = ViewBag.OriginalUrl, PageTitle = ViewBag.Title, CanonicalUrl = ViewBag.CanonicalUrl }; Products.FillProductItems(UserID, model.Products, StaticValues.DefaultProductImageSize); jsonSuccessResult.Data = model; jsonSuccessResult.Success = true; } catch (Exception ex) { jsonSuccessResult.Errors = new string[] { ex.Message }; jsonSuccessResult.Success = false; } return(new JsonResult() { Data = jsonSuccessResult }); }
private static StringBuilder refreshPrices() { var prices = new StringBuilder(); var products = Products.GetAll(); prices.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); prices.Append("<rss version=\"2.0\">"); prices.Append("<channel xmlns:atom=\"http://www.w3.org/2005/Atom\">"); prices.Append("<title>" + StaticValues.WebsiteTitle + "</title>"); prices.Append("<link>" + StaticValues.WebsiteUrl + "</link>"); prices.Append("<description>" + StaticValues.WebsiteDescription + "</description>"); prices.Append("<language>fa-IR</language>"); prices.Append("<copyright>Copyright " + DateTime.Now.Year + " " + StaticValues.WebsiteTitle + ". All rights reserved.</copyright>"); prices.Append("<lastBuildDate>" + RSSDateFormat(products.Last().LastUpdate) + "</lastBuildDate>"); foreach (var item in products) { var group = Groups.GetByID(item.GroupID.Value); var title_Fa = item.Title_Fa.Clone(); var title_En = item.Title_En.Clone(); item.Title_Fa = group.Perfix + " " + item.Title_Fa; item.Title_En = item.Title_En + " " + group.Perfix_En; string url = (StaticValues.WebsiteUrl + UrlProvider.GetProductUrl(item.ID, group.UrlPerfix, item.UrlPerfix)).HtmlEncode(); prices.Append("<item>"); prices.Append("<guid isPermaLink=\"true\">" + url + "</guid>"); prices.Append("<link>" + url + "</link>"); prices.Append("<category>" + group.Title.HtmlEncode() + "</category>"); prices.Append("<title>" + (title_En + " - " + title_Fa).HtmlEncode() + "</title>"); prices.Append("<description>"); var price = 0; if (item.Prices != null && item.Prices.Count > 0) { var minPrice = item.Prices.OrderBy(a => a.Price).First(); price = minPrice.DiscountPercent > 0 ? minPrice.DiscountPrice : minPrice.Price; } if (price == 0 || item.IsUnavailable) { prices.Append("موجود نیست"); } else { prices.Append(price.ToPrice()); } prices.Append("</description>"); prices.Append("<pubDate>" + RSSDateFormat(item.LastUpdate) + "</pubDate>"); prices.Append("</item>"); } prices.Append("</channel>"); prices.Append("</rss>"); return(prices); }
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); }
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); } }