示例#1
0
        public void OnNewReplenishmentRequest(ReplenishmentRequest replenishmentRequest)
        {
            string[]     row = { replenishmentRequest.Id.ToString(), replenishmentRequest.Book.Title, replenishmentRequest.Quantity.ToString() };
            ListViewItem newReplenishmentRequest = new ListViewItem(row);

            replenishmentRequestsList.Items.Add(newReplenishmentRequest);
        }
示例#2
0
        public void OnOrdersShipment(List <int> shippedReplenishmentRequestIds)
        {
            List <ReplenishmentRequestData> shippedReplenishmentRequest = new List <ReplenishmentRequestData>();

            foreach (int orderShippedId in shippedReplenishmentRequestIds)
            {
                ReplenishmentRequest replenishmentRequest =
                    _replenishmentRequests.Find(r => r.Id == orderShippedId);
                _shippedReplenishmentRequests.Add(replenishmentRequest);
                _replenishmentRequests.Remove(replenishmentRequest);


                ReplenishmentRequestData replenishmentRequestData = new ReplenishmentRequestData();
                replenishmentRequestData.Id = replenishmentRequest.Id;
                BookData bookData = new BookData();
                bookData.Id    = replenishmentRequest.Book.Id;
                bookData.Price = replenishmentRequest.Book.Price;
                bookData.Title = replenishmentRequest.Book.Title;
                replenishmentRequestData.Book     = bookData;
                replenishmentRequestData.Quantity = replenishmentRequest.Quantity;
                shippedReplenishmentRequest.Add(replenishmentRequestData);
            }

            _storeService.OnOrdersShipment(shippedReplenishmentRequest);
        }
示例#3
0
        public void OnNewReplenishmentRequestAsync(ReplenishmentRequest replenishmentRequest)
        {
            string[] row = { replenishmentRequest.Id.ToString(), replenishmentRequest.Book.Title, replenishmentRequest.Quantity.ToString() };

            ListViewAddItemDelegate listViewAddItemDelegate = replenishmentRequestsList.Items.Add;
            ListViewItem            newReplenishmentRequest = new ListViewItem(row);

            BeginInvoke(listViewAddItemDelegate, newReplenishmentRequest);
        }
示例#4
0
        private static void OnNewReplenishmentRequest(object sender, ReceiveCompletedEventArgs e)
        {
            MessageQueue messageQueue = (MessageQueue)sender;
            Message      msg          = messageQueue.EndReceive(e.AsyncResult);

            if (msg == null)
            {
                return;
            }

            if (msg.Body != null)
            {
                ReplenishmentRequest replenishmentRequest = (ReplenishmentRequest)msg.Body;
                _replenishmentRequests.Add(replenishmentRequest);
                _gui.OnNewReplenishmentRequestAsync(replenishmentRequest);
            }

            messageQueue.BeginReceive();
        }
        public void OnOrdersShipment(List <ReplenishmentRequestData> shippedReplenishmentOrders)
        {
            //add to pendent orders to be used as reference on ship arrive on store
            List <ReplenishmentRequest> replenishmentRequests = new List <ReplenishmentRequest>();

            foreach (ReplenishmentRequestData replenishmentRequestData in shippedReplenishmentOrders)
            {
                BookData bookData = replenishmentRequestData.Book;
                Book     book     = new Book(bookData.Id, bookData.Title, bookData.Price);

                ReplenishmentRequest replenishmentRequest = new ReplenishmentRequest(replenishmentRequestData.Id, book, replenishmentRequestData.Quantity);
                replenishmentRequests.Add(replenishmentRequest);
            }
            _pendentListOfReplenishmentRequestsOrderedByShipmentOrder.Add(replenishmentRequests);

            Dictionary <Book, int> booksToStockIncrement = GetBooksToStockIncrementFromReplenishmentRequests(replenishmentRequests);
            KeyValuePair <List <ComplexOrder>, Dictionary <Book, int> > pendentOrdersSolvedAndRemainingStockIncrementValue =
                GetPendentOrdersSolvedWithStockIncrementForThisBook(booksToStockIncrement);

            List <ComplexOrder> pendentOrdersSolved = pendentOrdersSolvedAndRemainingStockIncrementValue.Key;
            string pendentOdersReport = "";

            foreach (ComplexOrder pendentOrderSolved in pendentOrdersSolved)
            {
                pendentOrderSolved.State = Order.DispatchWillOccurInTwoDays();

                string pendentOrderReport = pendentOrderSolved.State;
                pendentOrderReport += "\n\n";
                pendentOrderReport  = GenerateTableForOrderReport(pendentOrderSolved, pendentOrderReport);
                string clientEmail = pendentOrderSolved.Client.Email;
                string clientName  = pendentOrderSolved.Client.Name;
                EmailSender.SendEmail(pendentOrderReport, "Pending Order", clientEmail, clientName);
            }

            _pendentOrdersThatWereSolvedToBooksRemainingStockIncrement.Add(pendentOrdersSolvedAndRemainingStockIncrementValue);
            _pendentOrders.RemoveAll(p => pendentOrdersSolved.Contains(p));
        }
        private void GenerateStockFault(Book book, int quantity)
        {
            ReplenishmentRequest replenishmentRequest = new ReplenishmentRequest(book, quantity);

            storeWarehouseMessenger.SendMessage(replenishmentRequest);
        }