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; })); }
public async Task RetrieveViewModelAsync(SalesOrderListItemViewModel orderDetail) { var model = await Task.Factory.StartNew(() => { byte[] bytes = null; string pathToDrawingFile = null; string partName = null; string customerName = null; string quoteReference = null; string woNumber = null; DateTime?date = null; using (var cpe = new CPEUnitOfWork()) { var version = cpe.PartVersions.GetById(46); bytes = cpe.Photos.GetByPartVersion(version); var part = cpe.Parts.GetWhereDrawingNumberMatches(orderDetail.DrawingNumber).SingleOrDefault(); if (part != null) { partName = part.Name; customerName = part.Customer.Name; var latestVersion = cpe.PartVersions.GetLatestVersion(part); bytes = cpe.Photos.GetByPartVersion(latestVersion); } } List <QuoteDetail> details = new List <QuoteDetail>(); using (var tricorn = new TricornDataProvider()) { quoteReference = tricorn.GetLastQuoteGroupReference(orderDetail.DrawingNumber, out date); woNumber = tricorn.GetLastWorksOrderNumber(orderDetail.DrawingNumber); if (quoteReference != null) { details = tricorn.GetQuoteDetails(quoteReference, orderDetail.DrawingNumber); } } var viewModel = new SalesOrderViewModel { Customer = customerName, OrderNumber = orderDetail.OrderNumber, DeliveryDate = orderDetail.DeliveryDate, DrawingNumber = orderDetail.DrawingNumber, Name = partName, LastWorksOrderNumber = woNumber, LastGroupReference = quoteReference, LastQuotedOn = date, SalesOrderFileName = orderDetail.FileName, PhotoBytes = bytes, LastQuoteDetails = details }; return(viewModel); }); _view.DataContext = model; }