示例#1
0
        private async void WriteOrdersListToFileAndEmail()
        {
            var    itemsToOrder = StackOfItemsToOrder.Children;
            int    numItems     = itemsToOrder.Count;
            string emailBody    = "";
            string emailHeading = "<Body style='margin:auto; background:darkgray; height:1000px; width:80%;'><h1 style='background:lightskyblue; Margin:auto; text-align:center'>Please Order the Following:</h1>";
            string emailTailing = "</Body>";

            for (int i = 0; i <= numItems - 1; i++)
            {
                if (((CustomItemToOrder)itemsToOrder[i]).CrossOrTick.Source.ToString() == @"pack://application:,,,/Images/GreenTick.png")
                {
                    int count = i + 1;//This is a counter used in numbering the items to order within the email.
                    emailBody = emailBody + CreateOrderString((CustomItemToOrder)itemsToOrder[i], ref count);
                }
            }

            emailBody = emailHeading + emailBody + emailTailing;

            string password = getUserPassword();

            emailSendWindowReference = new EmailSend();
            emailSendWindowReference.Show();

            try
            {
                System.Threading.Tasks.Task task = System.Threading.Tasks.Task.Run(() => SendEmail(emailBody, password));
                await task;

                IUpdateEmailProgress emailProgress = emailSendWindowReference;
                emailProgress.TickEmailComplete();

                ClearOrderedItemsFromDbTable();
            }
            catch (Exception e)
            {
                switch (e.HResult.ToString())
                {
                case "-2146233088":
                    emailSendWindowReference.emailStatusText.Content = "Sending failed. Did you enter your password in correctly?";
                    break;

                default:
                    MessageBox.Show("Sending failed. Unknown Error Code Received: " + e.HResult.ToString());
                    break;
                }

                var image = new BitmapImage();
                image.BeginInit();
                image.UriSource = new Uri("/Images/RedCross.png", UriKind.Relative);
                image.EndInit();
                ImageBehavior.SetAnimatedSource(emailSendWindowReference.emailSending, image);
            }
        }