//[Authorization.Authorize(Policy = PermissionsEnum.SaleOpportunity_Manage)] public IActionResult Post([FromBody] SampleBoxProductInsertCommandInputDTO model) { var appResult = this.InsertCommand.Execute(model); if (appResult.IsSucceed) { var signalArgs = new SignalREventArgs(SignalREvents.DATA_CHANGED.Identifier, nameof(SignalREvents.DATA_CHANGED.ActionEnum.ADDED_ITEM), "SaleOpportunity", appResult.Bag); this.SignalRHubContext.Clients.All.DataChanged(signalArgs); } return(appResult.IsSucceed ? (IActionResult)this.Ok(appResult) : (IActionResult)this.BadRequest(appResult)); }
public OperationResponse <SampleBoxProductInsertCommandOutputDTO> Execute(SampleBoxProductInsertCommandInputDTO input) { var result = new OperationResponse <SampleBoxProductInsertCommandOutputDTO>(); using (var dbContextScope = this.DbContextScopeFactory.Create()) { var entity = new DomainModel.SaleOpportunity.SampleBoxProduct { SampleBoxId = input.SampleBoxId, SaleOpportunityTargetPriceProductId = input.SaleOpportunityTargetPriceProductId }; try { var insertResult = this.Repository.Insert(entity); result.AddResponse(insertResult); if (result.IsSucceed) { dbContextScope.SaveChanges(); } } catch (Exception ex) { result.AddError("Error Adding Product", ex); } if (result.IsSucceed) { //this.Repository.Detach(entity.Id); var getByIdResult = this.Repository.GetById(entity.Id, true); result.AddResponse(getByIdResult); if (result.IsSucceed) { result.Bag = new SampleBoxProductInsertCommandOutputDTO { Id = getByIdResult.Bag.Id, SaleOpportunityTargetPriceProductId = getByIdResult.Bag.SaleOpportunityTargetPriceProductId, SampleBoxId = getByIdResult.Bag.SampleBoxId, ProductAmount = getByIdResult.Bag.SaleOpportunityTargetPriceProduct.ProductAmount, ProductName = getByIdResult.Bag.SaleOpportunityTargetPriceProduct.Product.Name, ProductTypeId = getByIdResult.Bag.SaleOpportunityTargetPriceProduct.Product.ProductTypeId, ProductTypeName = getByIdResult.Bag.SaleOpportunityTargetPriceProduct.Product.ProductType.Name, ProductTypeDescription = getByIdResult.Bag.SaleOpportunityTargetPriceProduct.Product.ProductType.Description, ProductPictureId = getByIdResult.Bag.SaleOpportunityTargetPriceProduct.Product.ProductMedias.Select(media => media.FileRepositoryId).FirstOrDefault(), }; } } } return(result); }