Exemple #1
0
 internal Task SendResponseAsync(StockDeliverySetResponse response, CancellationToken cancellationToken = default)
 {
     return(this.SendResponseAsync(response,
                                   () =>
     {
         return this.Dialog.SendResponseAsync(response, cancellationToken);
     }));
 }
Exemple #2
0
 internal void SendResponse(StockDeliverySetResponse response)
 {
     this.SendResponse(response,
                       () =>
     {
         this.Dialog.SendResponse(response);
     });
 }
Exemple #3
0
        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));
        }
Exemple #4
0
        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));
        }
Exemple #5
0
 public StockDeliverySetFinishedProcessState(StockDeliverySetRequest request,
                                             StockDeliverySetResponse response)
 {
     this.Request  = request;
     this.Response = response;
 }
Exemple #6
0
 public Task SendResponseAsync(StockDeliverySetResponse response, CancellationToken cancellationToken = default)
 {
     return(base.SendResponseAsync(response, cancellationToken));
 }
Exemple #7
0
 public void SendResponse(StockDeliverySetResponse response)
 {
     base.SendResponse(response);
 }
Exemple #8
0
        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);
        }