protected bool Extract_WriteDateTimeValue(ColRegExpExtractProcessingResult extractResult, MainDataSet.DocumentsRow rowDocuments, string columnName, bool scriptExtract) { var result = false; DateTime dt; if (!scriptExtract) { var dateTimeFormat = extractResult.ExtractOptions.DateTimeFormat; if (!String.IsNullOrEmpty(dateTimeFormat)) { var formats = dateTimeFormat.Split(',') .Select(x => x.Replace("\"", "")); result = DateTime.TryParseExact(extractResult.Value, formats.ToArray(), _cultureInfo, DateTimeStyles.None, out dt); } else { result = DateTime.TryParse(extractResult.Value, out dt); } } else { result = DateTime.TryParse(extractResult.Value, out dt); } /////////////////////////////////////////////////////////////////////////////// if (result) { rowDocuments[columnName] = dt; } return(result); }
protected bool Extract_WriteNumericValue(ColRegExpExtractProcessingResult extractResult, MainDataSet.DocumentsRow rowDocuments, string columnName, bool scriptExtract) { decimal numericValue; if (Decimal.TryParse(extractResult.Value, out numericValue)) { rowDocuments[columnName] = numericValue; return(true); } return(false); }
protected bool Extract_WriteFreeTextValue(ColRegExpExtractProcessingResult extractResult, MainDataSet.DocumentsRow rowDocument, string columnName, bool scriptExtract) { string newValue; if (!scriptExtract) { List <string> currentValues = null; if (extractResult.ExtractOptions.AddToPrevious.HasValue && extractResult.ExtractOptions.AddToPrevious.Value) { if (!rowDocument.IsNull(columnName)) { var textValue = (string)rowDocument[columnName]; try { if (textValue.StartsWith("[")) { currentValues = JsonConvert.DeserializeObject <List <string> >(textValue); } } catch { } if (currentValues == null) { currentValues = new List <string> { textValue } } ; } } /////////////////////////////////////////////////////////////////////////////// if (currentValues == null) { currentValues = new List <string>(); } if (extractResult.Value.StartsWith("[")) { try { var extractedValues = JsonConvert.DeserializeObject <string[]>(extractResult.Value); currentValues.AddRange(extractedValues); } catch { currentValues.Add(extractResult.Value); } } else { currentValues.Add(extractResult.Value); } newValue = currentValues.Count > 1 ? JsonConvert.SerializeObject(currentValues) : currentValues.First(); } else { newValue = extractResult.Value; } /////////////////////////////////////////////////////////////////////////////// if (!columnName.StartsWith("NOTE_TEXT")) { rowDocument[columnName] = newValue; } return(true); }