Esempio n. 1
0
        async private void DoGenerateMail(object obj)
        {
            try
            {
                WorkInProgress = true;
                if (DeliveryBatch != null)
                {
                    var result = await RestHub.GenerateEmail(DeliveryBatch.Id);

                    if (result.HttpCode == System.Net.HttpStatusCode.OK)
                    {
                        try
                        {
                            Microsoft.Office.Interop.Outlook.Application oApp     = new Microsoft.Office.Interop.Outlook.Application();
                            Microsoft.Office.Interop.Outlook.MailItem    mailItem = (Microsoft.Office.Interop.Outlook.MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);

                            mailItem.To         = "*****@*****.**";
                            mailItem.CC         = "[email protected];[email protected]";
                            mailItem.Subject    = "Reactions Mail";
                            mailItem.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML;
                            mailItem.HTMLBody   = result.UserObject.ToString();
                            mailItem.Display(false);
                        }
                        catch (Exception ex)
                        {
                            var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), $"{DeliveryBatch.BatchNumber}.html");
                            File.WriteAllText(path, result.UserObject.ToString());
                            AppInfoBox.ShowInfoMessage($"Unfortunately Outlook is not accessible. The prepared report will open in web browser, you may copy and paste in email manually.");
                            Process.Start(path);
                        }
                    }
                    else
                    {
                        AppErrorBox.ShowErrorMessage("Error While Generating Email . .", Environment.NewLine + result.HttpResponse);
                    }
                    DeliveryInProgress = Visibility.Hidden;
                }
                else
                {
                    MessageBox.Show("From Batch, From Category, Delivery Batch Number Is Required . . .");
                }
                WorkInProgress = false;
            }
            catch (Exception ex)
            {
                AppErrorBox.ShowErrorMessage("Can't generate mail report . .", ex.ToString());
            }
            finally
            {
                WorkInProgress = false;
            }
        }