public JsonResult _GetProductsInfo(MarketplaceFeed model) { // get the products's ASINs var infoFeeds = _productService.GetProductInfoFeeds(model); // create the file to save the list of product's ASIN var fileFullPath = string.Format("{0}\\Products_ASINS_{1:yyyyMMdd_HHmmss}.txt", _systemJobsRoot, DateTime.Now); // write the asins to the file using (var streamWriter = new StreamWriter(fileFullPath)) { var writer = new CsvHelper.CsvWriter(streamWriter); foreach (var info in infoFeeds) { writer.WriteField(info.EisSKU); writer.WriteField(info.ASIN); writer.WriteField(info.UPC); writer.NextRecord(); } } // create new job for the Amazon Get Info for the asins var systemJob = new SystemJobDto { JobType = JobType.AmazonGetInfo, Parameters = fileFullPath, SubmittedBy = User.Identity.Name }; _systemJobService.CreateSystemJob(systemJob); return(Json(new { Success = "Amazon Get Info has been passed to EIS System Jobs for execution." }, JsonRequestBehavior.AllowGet)); }
public IEnumerable <MarketplaceInventoryFeed> GetProductInventoryFeed(MarketplaceFeed param) { var products = getProductFeed(param); var productList = products.Where(o => !o.IsBlacklisted).ToList(); return(Mapper.Map <List <MarketplaceInventoryFeed> >(productList)); }
public JsonResult _DeleteProducts(MarketplaceFeed model) { try { // get product's EIS SKU var productEisSkus = _productService.GetProductsEisSku(model); var fileFullPath = string.Format("{0}\\BulkDeleteProducts_{1:yyyyMMdd_HHmmss}.txt", _systemJobsRoot, DateTime.Now); using (var streamWriter = new StreamWriter(fileFullPath)) { var writer = new CsvHelper.CsvWriter(streamWriter); foreach (var eisSku in productEisSkus) { writer.WriteField(eisSku); writer.NextRecord(); } } // create new job for the Amazon Get Info for the asins var systemJob = new SystemJobDto { JobType = JobType.BulkDeleteProduct, Parameters = fileFullPath, SubmittedBy = User.Identity.Name }; _systemJobService.CreateSystemJob(systemJob); return(Json("Bulk deletion of products has been passed to EIS System Jobs for execution.", JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { Error = "Error in deleting products! - Message: " + EisHelper.GetExceptionMessage(ex) }, JsonRequestBehavior.AllowGet)); } }
public IEnumerable <eBayCategoryFeed> GeteBaySuggestedCategoryFeed(MarketplaceFeed feed) { var products = getProductFeed(feed); var productList = products.ToList(); return(Mapper.Map <List <eBayCategoryFeed> >(productList)); }
public List <string> GetProductsEisSku(MarketplaceFeed param) { // get the product items from the list of EIS SKUs var products = getProductFeed(param); return(products.Select(x => x.EisSKU).ToList()); }
public IEnumerable <ItemFeed> GeteBayItemFeeds(MarketplaceFeed feed) { // get the product list var products = getProductFeed(feed); var productList = products.Where(o => !o.IsBlacklisted).ToList(); return(Mapper.Map <List <ItemFeed> >(productList)); }
public IEnumerable <MarketplacePriceFeedDto> GetProductPriceFeed(MarketplaceFeed param) { // get the product list var products = getProductFeed(param); var productList = products.Where(o => !o.IsBlacklisted).ToList(); return(Mapper.Map <List <MarketplacePriceFeedDto> >(productList)); }
private IQueryable <product> getProductFeed(MarketplaceFeed param) { IQueryable <product> products = null; if (param.IsAllProductItems) { if (!string.IsNullOrEmpty(param.SearchString)) { products = _context.products .Where(x => x.EisSKU.Contains(param.SearchString) || x.UPC.Contains(param.SearchString) || x.Category.Contains(param.SearchString) || x.Name.Contains(param.SearchString)); } else if (param.ProductGroupId != -1) { products = getGroupedProducts(param.ProductGroupId, param.SearchString, param.CompanyId ?? -1, //param.VendorId ?? -1, //param.QuantityFrom ?? -1, //param.QuantityTo ?? -1, param.ExcludedEisSKUs, param.WithImages, param.IsKit, param.SkuType, param.IsAmazonEnabled, param.HasASIN); } else { products = getFilteredProducts(param.SearchString, param.CompanyId ?? -1, //param.VendorId ?? -1, //param.QuantityFrom ?? -1, //param.QuantityTo ?? -1, param.ExcludedEisSKUs, param.WithImages, param.IsKit, param.SkuType, param.IsSKULinked, param.IsAmazonEnabled, param.HasASIN); } } else { products = _context.products.Where(x => param.SelectedEisSKUs.Contains(x.EisSKU) && (!param.ExcludedEisSKUs.Any() || param.ExcludedEisSKUs.Contains(x.EisSKU))); } return(products.AsQueryable()); }
public void ShouldFilter_ProductDataFeed_ASIN() { //Arrange ProductService service = new ProductService(null, null); MarketplaceFeed param = new MarketplaceFeed(); param.HasASIN = true; //Act var result = service.GetProductPostFeeds(param).ToList(); //Assert Debug.WriteLine(result.Count); Assert.True(result.Count > 0, "No Items Found."); }
//[TestMethod] public void ShouldReturnProductsSubmitPriceFeed_NotBlacklisted() { //Arrange ProductService service = new ProductService(null, null); MarketplaceFeed param = new MarketplaceFeed(); param.IsAllProductItems = true; param.ProductGroupId = -1; //Act var result = service.GetProductPostFeeds(param).ToList(); //Assert Debug.WriteLine(result.Count); //Assert.IsTrue(result.Count > 0, "No Items Found."); }
public JsonResult _SubmiteBayProductReListing(MarketplaceFeed model) { try { // get the eBay products for the relisting var productItems = _productService.GeteBayItemFeeds(model).ToList(); var fileFullPath = string.Format("{0}\\eBayProductReListing_{1:yyyyMMdd_HHmmss}.csv", _systemJobsRoot, DateTime.Now); using (var streamWriter = new StreamWriter(fileFullPath)) { var writer = new CsvHelper.CsvWriter(streamWriter); foreach (var item in productItems) { writer.WriteField(item.EisSKU); writer.WriteField(item.ItemId); writer.NextRecord(); } } // create new job for eBay suggested categories var systemJob = new SystemJobDto { JobType = JobType.eBayProductsReListing, Parameters = fileFullPath, SupportiveParameters = model.Mode, SubmittedBy = User.Identity.Name }; var jobId = _systemJobService.CreateSystemJob(systemJob); return(Json(new { Success = "eBay Product ReListing has been passed to EIS System Jobs for execution.", JobId = jobId }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { Error = "Error in submitting eBay product relisting! - Message: " + EisHelper.GetExceptionMessage(ex) }, JsonRequestBehavior.AllowGet)); } }
public async Task SubmitPriceFeedAsync(MarketplaceFeed marketplaceFeed, string userName) { LAST_PRICE_UPDATE_FEED_TIME = DateTime.Now; // get all products with the specified eisProduct types var products = _productService.GetProductPriceFeed(marketplaceFeed).ToList(); if (!products.Any()) { return; } // iterate first to the selected marketplaces foreach (var crendentialType in marketplaceFeed.Marketplaces) { // get the marketplace provider var marketplaceProvider = getMarketInventoryProvider(crendentialType); // then list to the list of selected companies foreach (var companyId in marketplaceFeed.Companies) { // get the marketplace credential define for the company var credential = _credentialService.GetCredential(crendentialType, companyId, marketplaceFeed.Mode); if (credential == null) { _logger.LogWarning(LogEntryType.MarketplaceInventoryManager, string.Format("Company with ID {0} has no credentials for {1} - {2} mode.", companyId, crendentialType, marketplaceFeed.Mode)); continue; } marketplaceProvider.Credential = credential; // execute the it asynchroounously Task.Factory.StartNew(() => { // Create a worker object var worker = new MarketplaceWorker(marketplaceProvider, userName); worker.SubmitPriceFeeds(products); }); } } }
public List <AmazonInfoFeed> GetProductInfoFeeds(MarketplaceFeed feed) { var products = getProductFeed(feed); if (!products.Any()) { return(null); } // just return products only with ASIN return(products.Select(x => x.productamazon) .Select(x => new AmazonInfoFeed { EisSKU = x.EisSKU, ASIN = x.ASIN, UPC = x.product.UPC }) .ToList()); }
public JsonResult _GeteBayBulkSuggestedCategories(MarketplaceFeed model) { try { // get the product feed for bul eBay suggested categories var productKeywordFeeds = _productService.GeteBaySuggestedCategoryFeed(model); var fileFullPath = string.Format("{0}\\BulkeBaySuggestedCategories_{1:yyyyMMdd_HHmmss}.csv", _systemJobsRoot, DateTime.Now); using (var streamWriter = new StreamWriter(fileFullPath)) { var writer = new CsvHelper.CsvWriter(streamWriter); foreach (var item in productKeywordFeeds) { writer.WriteField(item.EisSKU); writer.WriteField(item.Keyword); writer.NextRecord(); } } // create new job for eBay suggested categories var systemJob = new SystemJobDto { JobType = JobType.BulkeBaySuggestedCategories, Parameters = fileFullPath, SubmittedBy = User.Identity.Name }; var jobId = _systemJobService.CreateSystemJob(systemJob); return(Json(new { Success = "Bulk eBay get suggested categories has been passed to EIS System Jobs for execution.", JobId = jobId }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { Error = "Error in getting bulk eBay suggested categories! - Message: " + EisHelper.GetExceptionMessage(ex) }, JsonRequestBehavior.AllowGet)); } }
public IEnumerable <MarketplaceProductFeedDto> GetProductPostFeeds(MarketplaceFeed param) { var products = getProductFeed(param); var productList = products.Where(o => o.IsBlacklisted == false).ToList(); // convert it first into product feed var productsFeed = Mapper.Map <List <MarketplaceProductFeedDto> >(productList); // iterate and get its images foreach (var product in productsFeed) { var images = GetProductImages(product.EisSKU); product.ImageUrls = images.Select(x => x.Url).ToList(); var shadow = _context.shadows.FirstOrDefault(x => x.ShadowSKU == product.EisSKU); if (shadow != null) { product.FactorQuantity = shadow.FactorQuantity; } } return(productsFeed); }
public async Task <JsonResult> _SubmitPriceFeed(MarketplaceFeed model) { await _inventoryManager.SubmitPriceFeedAsync(model, User.Identity.Name); return(Json(new { Success = "Price feeds have been successfully posted to marketplaces" }, JsonRequestBehavior.AllowGet)); }