/// <summary> /// Process /// </summary> /// <param name="commerceContext">commerceContext</param> /// <returns>true if the process was successful</returns> public async Task <CommerceCommand> Process(CommerceContext commerceContext, ImportEntitiesArgument args) { using (var activity = CommandActivity.Start(commerceContext, this)) { var result = await this._pipeline.Run(args, new CommercePipelineExecutionContextOptions(commerceContext)); return(this); } }
public async Task <IActionResult> ImportEntities([FromBody] ODataActionParameters request) { if (!this.ModelState.IsValid || request == null) { return((IActionResult) new BadRequestObjectResult(this.ModelState)); } if (!request.ContainsKey("importFile") || request["importFile"] == null) { return((IActionResult) new BadRequestObjectResult((object)request)); } IFormFile formFile = (IFormFile)request["importFile"]; MemoryStream memoryStream = new MemoryStream(); formFile.CopyTo((Stream)memoryStream); FormFile file = new FormFile((Stream)memoryStream, 0L, formFile.Length, formFile.Name, formFile.FileName); try { InitializeEnvironment(); var sb = new StringBuilder(); using (var reader = new StreamReader(file.OpenReadStream())) { while (reader.Peek() >= 0) { sb.AppendLine(reader.ReadLine()); } } var jsonString = sb.ToString(); var entities = JsonConvert.DeserializeObject <EntityCollectionModel>(jsonString, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }); var importEntitiesArgument = new ImportEntitiesArgument(entities); var command = this.Command <ImportCommerceEntitiesCommand>(); var result = await command.Process(this.CurrentContext, importEntitiesArgument); return((IActionResult) new ObjectResult((object)this.ExecuteLongRunningCommand(() => command.Process(this.CurrentContext, importEntitiesArgument)))); } catch (Exception ex) { return(new ObjectResult(ex)); } }