private async Task <List <SalesOrderListItemViewModel> > GetSalesOrdersAsync()
        {
            return(await Task.Factory.StartNew(() =>
            {
                var salesOrderAttachments = OutlookDataProvider.ExtractSalesOrderPdfs(
                    Settings.Default.NewOrderFolderName,
                    Path.GetTempPath());

                string orderExpr, buyerExpr, deliveryExpr, drawingExpr;
                byte[] logoBytes = null;

                using (var cpe = new CPEUnitOfWork())
                {
                    var customer = cpe.Customers.GetAll().FirstOrDefault(c => c.Name.Contains("E2V"));
                    orderExpr = customer.OrderNumberRegex;
                    buyerExpr = customer.BuyerRegex;
                    deliveryExpr = customer.DeliveryDateRegex;
                    drawingExpr = customer.DrawingNumberRegex;
                    logoBytes = customer.LogoBLOB;
                }

                var salesOrders = new List <SalesOrderListItemViewModel>();

                foreach (var attachment in salesOrderAttachments)
                {
                    var detail = PdfParser.ParseSalesOrderAsync(attachment.FileName, attachment.MailId, orderExpr,
                                                                deliveryExpr, buyerExpr, drawingExpr).Result;

                    var model = new SalesOrderListItemViewModel
                    {
                        Buyer = detail.Buyer, DeliveryDate = detail.DeliveryDate, DrawingNumber = detail.DrawingNumber, OrderNumber = detail.OrderNumber,
                        CompanyLogoBytes = logoBytes, FileName = detail.FileName, MailId = detail.MailId
                    };

                    salesOrders.Add(model);
                }

                return salesOrders;
            }));
        }
Beispiel #2
0
        public void MoveEmailToLaunchedFolder()
        {
            if (MessageBox.Show("This will move this sales order to the launched folder!\n\nDo you wish to continue?",
                                "Confirm complete",
                                MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
            {
                return;
            }

            var ok = OutlookDataProvider.MoveMail(_view.OrderDetail.MailId, Settings.Default.LaunchedFolderName);

            if (!ok)
            {
                MessageBox.Show(
                    "Unable to move email to the launched folder.\n\nYou can try again or move it manually within Outlook.");

                _view.OrderMarkedAsLaunched();
            }
            else
            {
                _view.OrderMarkedAsLaunched();
            }
        }
Beispiel #3
0
 public ActionResult Index()
 {
     return(View(OutlookDataProvider.GetMessages()));
 }
Beispiel #4
0
 public ActionResult GridViewPartialView()
 {
     return(PartialView("GridViewPartialView", OutlookDataProvider.GetMessages()));
 }