/// <summary> /// Gets all tax rates /// </summary> /// <returns>Tax rates</returns> public IPagedList <YandexMarketProductRecord> GetByCategory(int categoryId = 0, bool isNotImportedOnly = false, int pageIndex = 0, int pageSize = int.MaxValue, bool withFantoms = false, bool withVendorExisting = true, bool isActiveOnly = false) { if (categoryId == -1) { return(new PagedList <YandexMarketProductRecord>(new List <YandexMarketProductRecord>(), 0, 1)); } IQueryable <YandexMarketProductRecord> query = this._productRepository.Table; if (!withFantoms) { query = query.Where(tr => tr.Name != "NotInPriceList"); } if (categoryId != 0) { query = query.Where(tr => tr.YandexMarketCategoryRecordId == categoryId); } if (isActiveOnly) { var activeYaCategoriesIds = _yandexMarketCategoryService.GetAll().Where(x => x.IsActive).Select(y => y.Id).ToList(); query = query.Where(tr => activeYaCategoriesIds.Contains(tr.YandexMarketCategoryRecordId)); } IEnumerable <YandexMarketProductRecord> res1 = query.ToList(); if (isNotImportedOnly) { var yaCategories = _yandexMarketCategoryService.GetAll(); var yaCategory = yaCategories.SingleOrDefault(x => x.Id == categoryId); var shopCategoryId = yaCategory != null ? yaCategory.ShopCategoryId : 0; var allShopProductsArtikuls = _productService.SearchProductVariants(shopCategoryId, 0, 0, "", false, 0, 2147483647, showHidden: true) .Select(x => x.Sku).ToList(); res1 = res1.Where(x => allShopProductsArtikuls.Contains(x.Articul) == false); } if (withVendorExisting) { var vendorArtikultList = _yugCatalogPriceParserService.ParseAndShow(false).ProductLineList.Select(x => x.Articul).ToList(); res1 = res1.Where(yaProduct => vendorArtikultList.Contains(yaProduct.Articul)); } res1 = res1.OrderBy(tr => tr.Name); var records = new PagedList <YandexMarketProductRecord>(res1.ToList(), pageIndex, pageSize); for (int i = 0; i < records.Count(); i++) { records[i] = records[i].Clone().FormatMe(); } return(records); }
public ActionResult ParseAndShowyUgCatalog() { var list = _yugCatalogPriceParserService.ParseAndShow(true); return(Json(list)); }