public static string GetName(PublishFeedModes mode) { if (mode == PublishFeedModes.Publish) { return("Publish/Repricing"); } if (mode == PublishFeedModes.UnPublish) { return("Unpublish"); } if (mode == PublishFeedModes.Hold) { return("Hold"); } if (mode == PublishFeedModes.UnHold) { return("Unhold"); } if (mode == PublishFeedModes.HoldStyle) { return("Hold styles"); } if (mode == PublishFeedModes.UnHoldStyle) { return("Unhold styles"); } return("n/a"); }
public ProcessFeedResult UploadFeed(string filepath, MarketType market, string marketplaceId, PublishFeedModes mode, bool isPrime) { var result = new ProcessFeedResult(); _log.Info("Feed file: " + filepath); var results = ParseFeed(filepath); if (results == null) { return(result); } _log.Info("Parsed count: " + results.Count); result.ParsedCount = results.Count; return(result); }
public IList <MessageString> PreviewFeed(string filepath, PublishFeedModes mode) { var ordersCount = 0; var results = new List <MessageString>(); _log.Info("Preview Feed file: " + filepath); using (var stream = new FileStream(filepath, FileMode.Open, FileAccess.ReadWrite)) { IWorkbook workbook = null; if (filepath.EndsWith(".xlsx")) { workbook = new XSSFWorkbook(stream); } else { workbook = new HSSFWorkbook(stream); } var sheet = workbook.GetSheetAt(0); var headerRow = sheet.GetRow(0); int?orderDateIndex = 1; //var modelColumnIndex = headerRow.Cells.FirstOrDefault(c => c != null // && // (StringHelper.IsEqualNoCase( // StringHelper.TrimWhitespace( // c.StringCellValue), "SKU") // || // StringHelper.IsEqualNoCase( // StringHelper.TrimWhitespace( // c.StringCellValue), "Model") // || // StringHelper.IsEqualNoCase( // StringHelper.TrimWhitespace( // c.StringCellValue), "Product Id")))? // .ColumnIndex; //var salePriceColumnIndex = headerRow.Cells.FirstOrDefault(c => c != null // && StringHelper.IsEqualNoCase(StringHelper.TrimWhitespace(c.StringCellValue), "Price"))?.ColumnIndex; //var minPriceColumnIndex = headerRow.Cells.FirstOrDefault(c => c != null // && (StringHelper.IsEqualNoCase(StringHelper.TrimWhitespace(c.StringCellValue), "Min Price") // || StringHelper.IsEqualNoCase(StringHelper.TrimWhitespace(c.StringCellValue), "Min")))?.ColumnIndex; //var maxPriceColumnIndex = headerRow.Cells.FirstOrDefault(c => c != null // && (StringHelper.IsEqualNoCase(StringHelper.TrimWhitespace(c.StringCellValue), "Max Price") // || StringHelper.IsEqualNoCase(StringHelper.TrimWhitespace(c.StringCellValue), "Max")))?.ColumnIndex; //if (!modelColumnIndex.HasValue) //{ // results.Add(MessageString.Error("Unable to find the SKU/Model column")); // return results; //} for (var i = 1; i <= sheet.LastRowNum; i++) { var row = sheet.GetRow(i); if (row.GetCell(0) != null) { if (String.IsNullOrEmpty(row.GetCell(orderDateIndex.Value).ToString())) { ordersCount++; } // skuDataIssue++; // else // skuCount++; // try // { // var currentPrice = (salePriceColumnIndex.HasValue && // row.GetCell(salePriceColumnIndex.Value) != null) // ? PriceHelper.RoundToTwoPrecision( // ExcelHelper.TryGetCellDecimal(row.GetCell(salePriceColumnIndex.Value))) // : 0; // var minPrice = (minPriceColumnIndex.HasValue && // row.GetCell(minPriceColumnIndex.Value) != null) // ? PriceHelper.RoundToTwoPrecision( // ExcelHelper.TryGetCellDecimal(row.GetCell(minPriceColumnIndex.Value))) // : 0; // var maxPrice = (maxPriceColumnIndex.HasValue && // row.GetCell(maxPriceColumnIndex.Value) != null) // ? PriceHelper.RoundToTwoPrecision( // ExcelHelper.TryGetCellDecimal(row.GetCell(maxPriceColumnIndex.Value))) // : 0; // if (currentPrice == 0 && (minPrice == 0 || maxPrice == 0)) // priceDataIssue++; // else // priceCount++; // } // catch (Exception ex) // { // _log.Info("Issue with processing: " + ex.Message); // priceDataIssue++; // } } } } _log.Info("Parsed count: " + results.Count); results.Add(MessageString.Info(String.Format("{0} Orders will be created", ordersCount))); //if (mode == PublishFeedModes.Publish) //{ // results.Add(MessageString.Info(String.Format("{0} SKU(s) will be published or updated", skuCount))); // results.Add(MessageString.Info(String.Format("for {0} SKU(s) the price will be updated", priceCount))); //} //if (mode == PublishFeedModes.Hold) //{ // results.Add(MessageString.Info(String.Format("for {0} SKU(s) the status will be changed to \"on hold\"", skuCount))); //} //if (mode == PublishFeedModes.UnHold) //{ // results.Add(MessageString.Info(String.Format("for {0} SKU(s) the status will be changed to \"un hold\"", skuCount))); //} //if (mode == PublishFeedModes.HoldStyle) //{ // results.Add(MessageString.Info(String.Format("for {0} style(s) the status will be changed to \"on hold\"", skuCount))); //} //if (mode == PublishFeedModes.UnHoldStyle) //{ // results.Add(MessageString.Info(String.Format("for {0} style(s) the status will be changed to \"un hold\"", skuCount))); //} return(results); }