public async Task <PublishDeltaResult> PublishProductDeltas(IEnumerable <Product> products, IEnumerable <DeletedProductSku> deletedProducts, IEnumerable <AccountPrice> accountPrices, IEnumerable <DeletedAccountPrice> deletedAccountPrices, string accessKey) { var deltas = new List <ProcessedProductDelta>(); var publishDeltaResult = new PublishDeltaResult(); var endpoint = RegionEndpoints.GetRegionEndpoints(region); var fullEndpoint = $"{endpoint.APIEndpoint}{deltaEndpointSuffix}"; try { deltas = ConversionManager.ProcessProductDeltas(products, deletedProducts, accountPrices, deletedAccountPrices, accessKey); } catch (Exception e) { return(new PublishDeltaResult { Success = false, Errors = new List <PublishDeltaError> { new PublishDeltaError { Error = e.Message, Skus = products.Count() > 0 ? products.Select(prod => prod.Sku) : null, DeletedSkus = deletedProducts.Count() > 0 ? deletedProducts.Select(deletedProd => deletedProd.Sku) : null, AccountPrices = accountPrices, DeletedAccountPrices = deletedAccountPrices } } }); } foreach (var delta in deltas) { try { var json = JSONSerialization.SerializeToJSON(delta); var deltaResult = await HttpCalls.Post <DeltaResult>(json, fullEndpoint); publishDeltaResult.Tokens.Add(deltaResult.Token); } catch (Exception e) { publishDeltaResult.Errors.Add(new PublishDeltaError { Error = e.Message, Skus = products.Count() > 0 ? products.Select(prod => prod.Sku) : null, DeletedSkus = deletedProducts.Count() > 0 ? deletedProducts.Select(deletedProd => deletedProd.Sku) : null, AccountPrices = accountPrices, DeletedAccountPrices = deletedAccountPrices }); } } publishDeltaResult.Success = publishDeltaResult.Errors.Count == 0; return(publishDeltaResult); }
public async Task <PublishFeedResult> PublishProductFeed(IEnumerable <Product> products, IEnumerable <AccountPrice> accountPrices) { try { var productFeed = ConversionManager.ProcessProductFeed(products, accountPrices); var feedJSON = JSONSerialization.SerializeToJSON(productFeed); var endpoint = RegionEndpoints.GetRegionEndpoints(region); await UploadToSTFPAsync(feedJSON, endpoint.SFTPEndpoint); return(new PublishFeedResult { Success = true, Token = "" }); } catch (Exception e) { return(new PublishFeedResult { Success = false, Error = e.Message, StackTrace = e.StackTrace }); } }
public async Task <PublishFeedResult> PublishUserFeed(IEnumerable <User> users) { try { var userFeed = ConversionManager.ProcessUsers(users); var feedJSON = JSONSerialization.SerializeToJSON(userFeed); var endpoint = RegionEndpoints.GetRegionEndpoints(region); await UploadToSTFPAsync(feedJSON, endpoint.SFTPEndpoint); return(new PublishFeedResult { Success = true, Token = "" }); } catch (Exception e) { return(new PublishFeedResult { Success = false, Error = e.Message }); } }