public void Add(Order order, DateTime currentTime)
        {
            var delay        = currentTime + this._delay;
            var delayedOrder = new DelayedOrder(order, delay);

            this._delayedOrders.Enqueue(delayedOrder);

            this.MoveDelayedOrdersToHistory(currentTime);
        }
 bool Delivered(DelayedOrder order)
 {
     if (order.minutesDelayed <= 0)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
 void DeliverOrder(DelayedOrder readyOrder)
 {
     foreach (Order order in readyOrder.ordersInPack)
     {
         if (order.myOrderType == Order.orderType.email)
         {
             Debug.Log("Delivering an Email" + " | contentID = " + readyOrder.ordersInPack[0].orderID);
             EM.PutNextEmailToConversation(order.orderID);
         }
         else if (order.myOrderType == Order.orderType.item)
         {
             Debug.Log("Delivering an Item| " + order.orderAmount + "x " + order.orderID);
         }
     }
 }
    public void AddNewOrder(Order newOrder, int delayTimeMins, string notificationMessage)
    {
        Debug.Log("New order..." + newOrder.orderID);
        DelayedOrder newDelayOrder = new DelayedOrder();

        Debug.Log("Created newDelayedOrder");
        newDelayOrder.ordersInPack.Add(newOrder);
        newDelayOrder.minutesDelayed = delayTimeMins;

        delayedOrders.Add(newDelayOrder);

        // Set Up Phone Notification
        NotificationManager.SendWithAppIcon(System.TimeSpan.FromMinutes(delayTimeMins), "Magic Proto", notificationMessage, Color.white, NotificationIcon.Bell);

        Debug.Log("New DelayedOrder Added. An " + newDelayOrder.ordersInPack[0].myOrderType + " order to arrive in " + newDelayOrder.minutesDelayed + " mins");
    }
        private void ButtonNextStageClickHandler(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(_enteredId.Text))
            {
                MessageDialog.Show((string)ExecutionEngine.Instance.Resource[Constants.MessageEnterYourOrderIdKey]);
                return;
            }

            if (ExecutionEngine.Instance.PrimaryAction != PrimaryActionType.ProcessOrder)
            {
                _stage.CurrentOrder.OrderId = _enteredId.Text;
                _stage.CompleteOrder();
            }
            else
            {
                if (string.IsNullOrEmpty(_enteredCode.Text))
                {
                    MessageDialog.Show((string)ExecutionEngine.Instance.Resource[Constants.MessageEnterYourActivationCodeKey]);
                    return;
                }

                DelayedOrder order = DelayedOrder.GetOrder(_enteredId.Text);
                if (order != null && order.Code.Equals(_enteredCode.Text, System.StringComparison.InvariantCultureIgnoreCase))
                {
                    if (order.Action.Equals(PrimaryActionType.BurnCd.ToString()))
                    {
                        _stage.SwitchToBurningScreen(order.Folder);
                    }
                    else if (order.Action.Equals(PrimaryActionType.PrintPhotos.ToString()))
                    {
                        _stage.SwitchToPrintingScreen(order.Folder);
                    }
                }
                else
                {
                    MessageDialog.Show((string)ExecutionEngine.Instance.Resource[Constants.MessageActivationCodeIncorrectKey]);
                }
            }
        }
Exemple #6
0
        private void SaveOrderInfoToFile(Order order, string fileName)
        {
            ExecutionEngine.EventLogger.Write("Order:SaveOrderInfoToFile");
            if (order == null)
            {
                throw new ArgumentNullException("order");
            }

            if (fileName == null)
            {
                throw new ArgumentNullException("fileName");
            }

            XmlWriter writer = null;

            try
            {
                XmlWriterSettings settings = new XmlWriterSettings();
                settings.Indent             = true;
                settings.OmitXmlDeclaration = false;
                settings.Encoding           = Encoding.UTF8;

                writer = XmlTextWriter.Create(fileName, settings);

                writer.WriteStartElement("order");

                // Order Info
                writer.WriteStartElement("info");
                writer.WriteElementString("action", ExecutionEngine.Instance.PrimaryAction.ToString());
                writer.WriteElementString("kioskId", ExecutionEngine.Config.PhotoKioskId.Value);
                writer.WriteElementString("date", _orderDate);
                writer.WriteElementString("orderId", order.OrderId);

                if ((ExecutionEngine.Instance.PrimaryAction == PrimaryActionType.BurnCd && ExecutionEngine.Config.CDBurningRequireConfirm.Value) ||
                    (ExecutionEngine.Instance.PrimaryAction == PrimaryActionType.PrintPhotos && ExecutionEngine.Config.PhotoPrintingRequireConfirm.Value))
                {
                    writer.WriteElementString("activationCode", DelayedOrder.CreateActivationCode(order.OrderId));
                }

                writer.WriteElementString("paperType", order.OrderPaperType.Name);
                if (ExecutionEngine.Instance.PrimaryAction == PrimaryActionType.OrderPhotos)
                {
                    writer.WriteElementString("cropMode",
                                              Constants.CropToFillModeName == order.CropMode ?
                                              ExecutionEngine.Instance.Resource[Constants.CropToFillTextKey].ToString() :
                                              ExecutionEngine.Instance.Resource[Constants.ResizeToFitTextKey].ToString());
                }
                else if (ExecutionEngine.Instance.PrimaryAction == PrimaryActionType.PrintPhotos)
                {
                    writer.WriteElementString("cropMode", order.CropMode);
                }

                writer.WriteElementString("orderCost", order.GetTotalCost().ToString("c", CultureInfo.CurrentCulture));
                writer.WriteElementString("totalCost", (order.GetTotalCost() * (1 + Math.Max(0, ExecutionEngine.PriceManager.SalesTaxPercent.Value))).ToString("c", CultureInfo.CurrentCulture));
                writer.WriteEndElement();

                // User info
                writer.WriteStartElement("customer");
                writer.WriteElementString("name", order.UserName);
                writer.WriteElementString("phone", order.UserPhone);
                writer.WriteElementString("email", order.UserEmail);
                writer.WriteEndElement();

                // Photos info
                if (ExecutionEngine.Instance.PrimaryAction == PrimaryActionType.OrderPhotos || ExecutionEngine.Instance.PrimaryAction == PrimaryActionType.PrintPhotos)
                {
                    writer.WriteStartElement("formats");

                    foreach (PaperFormat format in ExecutionEngine.Instance.PaperFormats)
                    {
                        writer.WriteStartElement("format");
                        writer.WriteAttributeString("name", format.Name);
                        writer.WriteAttributeString("count", order.GetItemCount(format).ToString(CultureInfo.InvariantCulture));
                        writer.WriteAttributeString("cost", order.GetCost(format).ToString("c", CultureInfo.CurrentCulture));
                        if (ExecutionEngine.Instance.PrimaryAction == PrimaryActionType.PrintPhotos)
                        {
                            string printerName = ExecutionEngine.PriceManager.GetProduct(format.Name + order.OrderPaperType.Name + Constants.InstantKey).Printer;
                            writer.WriteAttributeString("printer", printerName);
                            writer.WriteAttributeString("width", format.Width.ToString(CultureInfo.InvariantCulture));
                            writer.WriteAttributeString("height", format.Height.ToString(CultureInfo.InvariantCulture));
                        }
                        else
                        {
                            string channelName = ExecutionEngine.PriceManager.GetProduct(format.Name + order.OrderPaperType.Name).Channel;
                            if (!string.IsNullOrEmpty(channelName))
                            {
                                writer.WriteAttributeString("channel", channelName);
                            }
                        }

                        foreach (OrderItem item in order.OrderItems)
                        {
                            if (item.GetCount(format) > 0)
                            {
                                writer.WriteStartElement("photo");
                                writer.WriteAttributeString("file", item.OrderStoreFileName);
                                writer.WriteAttributeString("crop", item.GetCropString(format));
                                writer.WriteAttributeString("quantity", item.GetCount(format).ToString());
                                writer.WriteEndElement();
                            }
                        }
                        writer.WriteEndElement();
                    }
                    writer.WriteEndElement();

                    if (ExecutionEngine.Instance.PrimaryAction == PrimaryActionType.OrderPhotos && _order.Services.Count > 0)
                    {
                        writer.WriteStartElement("services");

                        foreach (Service service in _order.Services)
                        {
                            writer.WriteStartElement("service");
                            writer.WriteAttributeString("name", service.Name);
                            writer.WriteAttributeString("price", order.GetCost(service).ToString("c", CultureInfo.CurrentCulture));
                            writer.WriteEndElement();
                        }

                        writer.WriteEndElement();
                    }
                }

                writer.WriteEndElement();
            }
            catch (Exception e)
            {
                ExecutionEngine.EventLogger.WriteExceptionInfo(e);
            }
            finally
            {
                if (writer != null)
                {
                    writer.Flush();
                    writer.Close();
                }
            }
        }