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);
        }