public void SetSalesOrderParserSettings(SalesOrderParserSettingsBlob settings) { SalesOrderParserSettings = BlobHandler.Compress(settings); if (_cache.Contains("ParserBlob")) { _cache.Remove("ParserBlob"); } }
private async Task <SalesOrderLine> GetSingleMultiDropSalesOrderLine(SalesOrderParserSettingsBlob settings) { var line = new SalesOrderLine(); var drawingNumberMatches = _pdfParser.Find(settings.DrawingNumberExpr, settings.DrawingNumberOptions); if (string.IsNullOrEmpty(settings.DrawingNumberReplacementExpr)) { line.DrawingNumber = drawingNumberMatches.Count == 0 ? "N/A" : drawingNumberMatches[0].Value; } else { if (drawingNumberMatches.Count == 0) { line.DrawingNumber = "N/A"; } else { line.DrawingNumber = RegexReplace( drawingNumberMatches[0].Value, settings.DrawingNumberReplacementExpr, settings.DrawingNumberReplacementValue, settings.DrawingNumberReplacementOptions); } } line.Photo = await _photos.GetPhotoByDrawingNumber(line.DrawingNumber); line.Name = await _tricorn.GetNameByDrawingNumberAsync(line.DrawingNumber); var deliveryMatches = _pdfParser.Find(settings.MultiDropExpr, settings.MultiDropOptions); line.OriginalDeliveryDate = DateTime.MaxValue; foreach (Match match in deliveryMatches) { var quantityString = match.Groups["quantity"].Value; var deliveryString = match.Groups["delivery"].Value; var batch = new BatchDelivery { DeliveryDate = DateTime.Parse(deliveryString), Quantity = int.Parse(quantityString) }; line.BatchDeliveries.Add(batch); if (batch.DeliveryDate < line.OriginalDeliveryDate) { line.OriginalDeliveryDate = batch.DeliveryDate; } } return(line); }
private async Task <List <SalesOrderLine> > GetMultipleSalesOrderLines(SalesOrderParserSettingsBlob settings) { var lines = new List <SalesOrderLine>(); var lineMatches = _pdfParser.Find(settings.MultiLineDrawingNumberAndDeliveryExpr, settings.MultiLineDrawingNumberAndDeliveryOptions); foreach (Match match in lineMatches) { var drawingNumber = match.Groups["drawing"].Value; var delivery = match.Groups["delivery"].Value; var line = new SalesOrderLine(); line.OriginalDeliveryDate = string.IsNullOrEmpty(delivery) ? DateTime.MinValue : DateTime.Parse(delivery); if (string.IsNullOrEmpty(settings.DrawingNumberReplacementExpr)) { line.DrawingNumber = string.IsNullOrEmpty(drawingNumber) ? "N/A" : drawingNumber; } else { if (string.IsNullOrEmpty(drawingNumber)) { line.DrawingNumber = "N/A"; } else { line.DrawingNumber = RegexReplace( drawingNumber, settings.DrawingNumberReplacementExpr, settings.DrawingNumberReplacementValue, settings.DrawingNumberReplacementOptions); } } line.Photo = await _photos.GetPhotoByDrawingNumber(line.DrawingNumber); line.Name = await _tricorn.GetNameByDrawingNumberAsync(line.DrawingNumber); lines.Add(line); } return(lines); }
private async Task <SalesOrderLine> GetSingleSalesOrderLine(SalesOrderParserSettingsBlob settings) { var line = new SalesOrderLine(); var deliveryMatches = _pdfParser.Find(settings.DeliveryDateExpr, settings.DeliveryDateOptions); var drawingNumberMatches = _pdfParser.Find(settings.DrawingNumberExpr, settings.DrawingNumberOptions); if (string.IsNullOrEmpty(settings.DrawingNumberReplacementExpr)) { line.DrawingNumber = drawingNumberMatches.Count == 0 ? "N/A" : drawingNumberMatches[0].Value; } else { if (drawingNumberMatches.Count == 0) { line.DrawingNumber = "N/A"; } else { line.DrawingNumber = RegexReplace( drawingNumberMatches[0].Value, settings.DrawingNumberReplacementExpr, settings.DrawingNumberReplacementValue, settings.DrawingNumberReplacementOptions); } } line.Photo = await _photos.GetPhotoByDrawingNumber(line.DrawingNumber); line.Name = await _tricorn.GetNameByDrawingNumberAsync(line.DrawingNumber); line.OriginalDeliveryDate = deliveryMatches.Count == 0 ? DateTime.MinValue : DateTime.Parse(deliveryMatches[0].Value); return(line); }