public async Task <IStockDeliverySetFinishedProcessState> StartProcessAsync(IEnumerable <StockDelivery> deliveries, CancellationToken cancellationToken = default) { StockDeliverySetRequest request = this.CreateRequest(deliveries); StockDeliverySetResponse response = await this.SendRequestAsync(request, () => { return(this.Dialog.SendRequestAsync(request, cancellationToken)); }).ConfigureAwait(continueOnCapturedContext: false); return(new StockDeliverySetFinishedProcessState(request, response)); }
private void Dialog_RequestReceived(Object sender, MessageReceivedEventArgs <StockDeliverySetRequest> e) { StockDeliverySetRequest request = e.Message; this.OnMessageReceived(request, () => { IStockDeliverySetRequestedProcessState processState = new StockDeliverySetRequestedProcessState(this, request); this.ProcessStarted?.Invoke(this, new ProcessStartedEventArgs <IStockDeliverySetRequestedProcessState>(processState)); }); }
public IStockDeliverySetFinishedProcessState StartProcess(IEnumerable <StockDelivery> deliveries) { StockDeliverySetRequest request = this.CreateRequest(deliveries); StockDeliverySetResponse response = this.SendRequest(request, () => { return(this.Dialog.SendRequest(request)); }); return(new StockDeliverySetFinishedProcessState(request, response)); }
public StockDeliverySetFinishedProcessState(StockDeliverySetRequest request, StockDeliverySetResponse response) { this.Request = request; this.Response = response; }
public Task <StockDeliverySetResponse> SendRequestAsync(StockDeliverySetRequest request, CancellationToken cancellationToken = default) { return(base.SendRequestAsync <StockDeliverySetRequest, StockDeliverySetResponse>(request, cancellationToken)); }
public StockDeliverySetResponse SendRequest(StockDeliverySetRequest request) { return(base.SendRequest <StockDeliverySetRequest, StockDeliverySetResponse>(request)); }
protected void OnRequestReceived(StockDeliverySetRequest request) { this.RequestReceived?.Invoke(this, new MessageReceivedEventArgs <StockDeliverySetRequest>(request, this.DialogProvider)); }
public void ProcessStockDeliverySetRequest(StockDeliverySetRequest stockDeliverySetRequest) { if (this.stockDeliveryResult) { // fix tenant foreach (StockDelivery stockDelivery in stockDeliverySetRequest.StockDeliveries) { if (String.IsNullOrEmpty(stockDelivery.TenantID)) // if PMR doesn't set the tenant, default it to the PMR tenant. { stockDelivery.TenantID = stockDeliverySetRequest.TenantID; } foreach (StockDeliveryItem stockDeliveryItem in stockDelivery.Items) { if (String.IsNullOrEmpty(stockDeliveryItem.TenantID)) // if PMR doesn't set the tenant, default it to the PMR tenant. { stockDeliveryItem.TenantID = stockDeliverySetRequest.TenantID; } } } // check if delivery is already know foreach (StockDelivery newStockDelivery in stockDeliverySetRequest.StockDeliveries) { bool addDelivery = true; foreach (StockDelivery existingStockDelivery in this.stockDeliveryList) { if (existingStockDelivery.DeliveryNumber == newStockDelivery.DeliveryNumber) { // if delivery existe if ((existingStockDelivery.State == StockDeliveryState.Queued) || (existingStockDelivery.State == StockDeliveryState.InProcess)) { // and is not finished, update it addDelivery = false; foreach (StockDeliveryItem newStockDeliveryItem in newStockDelivery.Items) { bool foundItem = false; foreach (StockDeliveryItem existingStockDeliveryItem in existingStockDelivery.Items) { if (existingStockDeliveryItem.ArticleCode == newStockDeliveryItem.ArticleCode) { foundItem = true; existingStockDeliveryItem.RequestedQuantity = newStockDeliveryItem.RequestedQuantity; #warning should copy more } } if (!foundItem) { existingStockDelivery.Items.Add(newStockDeliveryItem); } } } break; } } if (addDelivery) { // add not existing delivery this.stockDeliveryList.Add(newStockDelivery); } } this.DoStockDeliveryUpdated(); } StockDeliverySetResponse stockDeliverySetResponse = new StockDeliverySetResponse(stockDeliverySetRequest.ConverterStream); stockDeliverySetResponse.AdoptHeader(stockDeliverySetRequest); stockDeliverySetResponse.SetResult = this.stockDeliveryResult; stockDeliverySetResponse.SetResultText = this.stockDeliveryResultText; stockDeliverySetResponse.ConverterStream.Write(stockDeliverySetResponse); }
public StockDeliverySetRequestedProcessState(StockDeliverySetWorkflow workflow, StockDeliverySetRequest request) { this.Workflow = workflow; this.Request = request; }