public override async Task <SynchronizeCatalogArgument> Run(SynchronizeCatalogArgument arg, CommercePipelineExecutionContext context) { Sitecore.Commerce.Plugin.Catalog.Catalog catalog = null; var catalogId = arg.Proposition.Name.ProposeValidId() .EnsurePrefix(CommerceEntity.IdPrefix <Sitecore.Commerce.Plugin.Catalog.Catalog>()); if (await _doesEntityExistPipeline.Run( new FindEntityArgument(typeof(Sitecore.Commerce.Plugin.Catalog.Catalog), catalogId), context.CommerceContext.PipelineContextOptions)) { catalog = await _getCatalogPipeline.Run(new GetCatalogArgument(arg.Proposition.Name.ProposeValidId()), context.CommerceContext.PipelineContextOptions); } else { var createResult = await _createCatalogPipeline.Run(new CreateCatalogArgument(arg.Proposition.Name.ProposeValidId(), arg.Proposition.Name), context.CommerceContext.PipelineContextOptions); catalog = createResult?.Catalog; } Condition.Requires <Sitecore.Commerce.Plugin.Catalog.Catalog>(catalog).IsNotNull($"{this.Name}: The Catalog could not be created."); arg.CatalogId = catalog?.Id; arg.Catalog = catalog; return(arg); }
public override async Task <ImportCsvProductsArgument> Run(ImportCsvProductsArgument arg, CommercePipelineExecutionContext context) { Condition.Requires(arg, nameof(arg)).IsNotNull(); Condition.Requires(arg.FileLines, nameof(arg.FileLines)).IsNotNull(); var catalogList = GetDestinctCatalogData(arg); foreach (var(catalogName, fullCatalogName, catalogDisplayName) in catalogList) { var catalog = await _findEntityPipeline.Run(new FindEntityArgument(typeof(Catalog), fullCatalogName, 1), context); if (catalog != null) { continue; } await _createCatalogPipeline.Run(new CreateCatalogArgument(catalogName, catalogDisplayName), context); } return(arg); }