public override void Process(IMarketApi api, ITime time, AmazonReportInfo reportInfo, IList <IReportItemDTO> reportItems) { using (var uow = new UnitOfWork(Log)) { var items = reportItems.Cast <ItemDTO>().ToList(); Log.Debug("Begin process items"); ProcessItems(uow, api, items); Log.Debug("End process items"); } }
public AmazonReportService(AmazonReportType reportType, long companyId, AmazonApi api, ILogService log, ITime time, IDbFactory dbFactory, ISyncInformer syncInfo, IStyleManager styleManager, INotificationService notificationService, IStyleHistoryService styleHistoryService, IItemHistoryService itemHistoryService, ISystemActionService actionService, IReportParser parser, string path = "") { _log = log; _time = time; _dbFactory = dbFactory; _api = api; _reportInfo = new AmazonReportInfo(); _reportInfo.ReportRequestId = String.Empty; _path = path; _companyId = companyId; _syncInfo = syncInfo; _reportType = reportType; _parser = parser; _actionService = actionService; var parseContext = new ParseContext() { Log = log, Time = time, DbFactory = dbFactory, ActionService = actionService, StyleManager = styleManager, NotificationService = notificationService, StyleHistoryService = styleHistoryService, ItemHistoryService = itemHistoryService, SyncInformer = syncInfo, CompanyId = companyId }; _parser.Init(parseContext); _log.Info(string.Format("Path: {0}", path)); }
public override void Process(IMarketApi api, ITime time, AmazonReportInfo reportInfo, IList <IReportItemDTO> reportItems) { var listingProcessor = new ListingLineProcessing(Context, time, _canCreateStyleInfo); using (var uow = new UnitOfWork(Log)) { uow.DisableValidation(); var items = reportItems.Cast <ItemDTO>().ToList(); if (!_isProcessInactive) { items = items.Where(i => i.PublishedStatus != (int)PublishedStatuses.PublishedInactive).ToList(); } foreach (var item in items) { item.MarketplaceId = api.MarketplaceId; item.Market = (int)api.Market; item.CurrentPriceCurrency = "USD"; if (api.MarketplaceId == MarketplaceKeeper.AmazonCaMarketplaceId) { item.CurrentPriceCurrency = "CAD"; } if (api.MarketplaceId == MarketplaceKeeper.AmazonUkMarketplaceId) { item.CurrentPriceCurrency = "GBP"; } if (api.MarketplaceId == MarketplaceKeeper.AmazonMxMarketplaceId) { item.CurrentPriceCurrency = "MXN"; } if (api.MarketplaceId == MarketplaceKeeper.AmazonAuMarketplaceId) { item.CurrentPriceCurrency = "AUD"; } item.CurrentPriceInUSD = PriceHelper.RougeConvertToUSD(item.CurrentPriceCurrency, item.CurrentPrice); } Log.Debug("Begin process items"); ProcessItems(uow, api, time, listingProcessor, items, reportInfo.WasModified); Log.Debug("End process items"); } }
public override void Process(IMarketApi api, ITime time, AmazonReportInfo reportInfo, IList <IReportItemDTO> reportItems) { var listingProcessor = new ListingLineProcessing(Context, time, _canCreateStyleInfo); var items = reportItems.Cast <ItemDTO>().ToList(); if (!_isProcessInactive) { items = items.Where(i => i.PublishedStatus != (int)PublishedStatuses.PublishedInactive).ToList(); } //NOTE: Exclude all Rusty items = items.Where(i => !StringHelper.ContainsNoCase(i.Name, "Rusty")).ToList(); foreach (var item in items) { item.MarketplaceId = api.MarketplaceId; item.Market = (int)api.Market; item.CurrentPriceCurrency = "USD"; if (api.MarketplaceId == MarketplaceKeeper.AmazonCaMarketplaceId) { item.CurrentPriceCurrency = "CAD"; } if (api.MarketplaceId == MarketplaceKeeper.AmazonUkMarketplaceId) { item.CurrentPriceCurrency = "GBP"; } if (api.MarketplaceId == MarketplaceKeeper.AmazonMxMarketplaceId) { item.CurrentPriceCurrency = "MXN"; } if (api.MarketplaceId == MarketplaceKeeper.AmazonAuMarketplaceId) { item.CurrentPriceCurrency = "AUD"; } item.CurrentPriceInUSD = PriceHelper.RougeConvertToUSD(item.CurrentPriceCurrency, item.CurrentPrice); } Log.Debug("Begin process items"); ProcessItems(api, time, listingProcessor, items, reportInfo.WasModified); Log.Debug("End process items"); }
public override void Process(IMarketApi api, ITime time, AmazonReportInfo reportInfo, IList <IReportItemDTO> sourceItems) { using (var db = new UnitOfWork(Log)) { var returnItems = sourceItems.Select(i => (ReturnRequestDTO)i).ToList(); var updatedList = new List <string>(returnItems.Count); foreach (var item in returnItems) { var returnRequest = db.ReturnRequests.GetAll() .OrderByDescending(r => r.CreateDate) .FirstOrDefault(r => r.OrderNumber == item.OrderNumber); if (returnRequest != null) { if (!updatedList.Contains(item.OrderNumber)) { Log.Info("Return request has been updated, orderNumber=" + item.OrderNumber); returnRequest.HasPrepaidLabel = item.HasPrepaidLabel; returnRequest.PrepaidLabelCost = item.PrepaidLabelCost; returnRequest.PrepaidLabelBy = item.PrepaidLabelBy; updatedList.Add(item.OrderNumber); } else { Log.Info("Order has multiple returns: " + item.OrderNumber); } } else { Log.Info("Return request == null, orderNumber=" + item.OrderNumber); } } db.Commit(); } }
public override void Process(IMarketApi api, ITime time, AmazonReportInfo reportInfo, IList <IReportItemDTO> reportItems) { using (var uow = new UnitOfWork(Log)) { uow.DisableValidation(); var items = reportItems.Cast <ListingDefectDTO>().ToList(); string reportId = reportInfo.ReportId; foreach (var item in items) { item.MarketplaceId = api.MarketplaceId; item.MarketType = (int)api.Market; item.ReportId = reportId; } Log.Debug("Begin process items"); ProcessItems(uow, reportId, items); Log.Debug("End process items"); } }
public override void Process(IMarketApi api, ITime time, AmazonReportInfo reportInfo, IList <IReportItemDTO> reportItems) { using (var uow = new UnitOfWork(Log)) { uow.DisableValidation(); var items = reportItems.Cast <ItemDTO>().ToList(); foreach (var item in items) { item.MarketplaceId = api.MarketplaceId; item.Market = (int)api.Market; item.CurrentPriceCurrency = "USD"; if (api.MarketplaceId == MarketplaceKeeper.AmazonCaMarketplaceId) { item.CurrentPriceCurrency = "CAD"; } if (api.MarketplaceId == MarketplaceKeeper.AmazonUkMarketplaceId) { item.CurrentPriceCurrency = "GBP"; } if (api.MarketplaceId == MarketplaceKeeper.AmazonMxMarketplaceId) { item.CurrentPriceCurrency = "MXN"; } if (api.MarketplaceId == MarketplaceKeeper.AmazonAuMarketplaceId) { item.CurrentPriceCurrency = "AUD"; } item.CurrentPriceInUSD = PriceHelper.RougeConvertToUSD(item.CurrentPriceCurrency, item.CurrentPrice); } Log.Debug("Begin process items"); ProcessItems(uow, api, time, items); Log.Debug("End process items"); } }
public override void Process(IMarketApi api, ITime time, AmazonReportInfo reportInfo, IList <IReportItemDTO> sourceItems) { using (var db = new UnitOfWork(Log)) { var returnItems = sourceItems.Select(i => (ReturnRequestDTO)i).ToList(); // var updatedList = new List<string>(returnItems.Count); foreach (var returnItem in returnItems) { var existReturnRequest = db.ReturnRequests.GetAll() .OrderByDescending(r => r.CreateDate) .FirstOrDefault(r => r.OrderNumber == returnItem.OrderNumber && (r.SKU == returnItem.SKU || r.ItemName == returnItem.ItemName)); if (existReturnRequest != null) { //if (!updatedList.Contains(returnItem.OrderNumber)) //{ Log.Info("Return request has been updated, orderNumber=" + returnItem.OrderNumber); existReturnRequest.HasPrepaidLabel = returnItem.HasPrepaidLabel; existReturnRequest.PrepaidLabelCost = returnItem.PrepaidLabelCost; existReturnRequest.PrepaidLabelBy = returnItem.PrepaidLabelBy; existReturnRequest.MarketReturnId = returnItem.MarketReturnId; //updatedList.Add(returnItem.OrderNumber); //} //else //{ // Log.Info("Order has multiple returns: " + returnItem.OrderNumber); //} } else { //TODO: create request Log.Info("Exist Return request == null, orderNumber=" + returnItem.OrderNumber); var order = db.Orders.GetByOrderNumber(returnItem.OrderNumber); var orderItems = db.Listings.GetOrderItems(order.Id); var orderShippings = db.OrderShippingInfos.GetByOrderIdAsDto(order.Id).Where(sh => sh.IsActive).ToList(); var itemToCheck = orderItems.FirstOrDefault(i => i.SKU == returnItem.SKU); //If not found check all items if (itemToCheck == null && orderItems.Count == 1) { itemToCheck = orderItems.FirstOrDefault(); } Log.Info("Item to check=" + (itemToCheck != null ? itemToCheck.SKU : "[null}")); if (itemToCheck != null) { returnItem.StyleId = itemToCheck.StyleId; returnItem.StyleItemId = itemToCheck.StyleItemId; returnItem.SKU = itemToCheck.SKU; returnItem.StyleString = itemToCheck.StyleID; } var requestDb = new ReturnRequest() { ItemName = StringHelper.Substring(returnItem.ItemName, 255), MarketReturnId = returnItem.MarketReturnId, OrderNumber = returnItem.OrderNumber, Quantity = returnItem.Quantity, Reason = returnItem.Reason, CustomerComments = StringHelper.Substring(returnItem.CustomerComments, 255), Details = StringHelper.Substring(returnItem.Details, 255), ReceiveDate = returnItem.ReceiveDate, CreateDate = time.GetAppNowTime(), StyleId = returnItem.StyleId, StyleItemId = returnItem.StyleItemId, SKU = returnItem.SKU, HasPrepaidLabel = returnItem.HasPrepaidLabel, PrepaidLabelCost = returnItem.PrepaidLabelCost, PrepaidLabelBy = returnItem.PrepaidLabelBy }; db.ReturnRequests.Add(requestDb); db.Commit(); } } db.Commit(); } }
public abstract void Process(IMarketApi api, ITime time, AmazonReportInfo reportInfo, IList <IReportItemDTO> reportItems);