Пример #1
0
        /// <summary>
        /// Imports an Int32 value from the specified text line using the specified delimiter
        /// </summary>
        /// <param name="AImportLine">The line containing the text to be imported.  When the method returns the imported value
        /// will have been removed from the start ready for the next call to an Import method.</param>
        /// <param name="ADelimiter">The delimiter</param>
        /// <param name="AColumnTitle"></param>
        /// <param name="ADataColumn"></param>
        /// <param name="ARowNumber"></param>
        /// <param name="AMessages"></param>
        /// <param name="AValidationColumnsDict"></param>
        /// <param name="ADefaultString"></param>
        /// <returns>The value.  The AImportLine parameter will have been clipped.</returns>
        public static Int32 ImportInt32(ref String AImportLine,
                                        String ADelimiter,
                                        String AColumnTitle,
                                        DataColumn ADataColumn,
                                        int ARowNumber,
                                        TVerificationResultCollection AMessages,
                                        TValidationControlsDict AValidationColumnsDict,
                                        String ADefaultString = "")
        {
            if ((ADataColumn != null) && (AValidationColumnsDict != null) && !AValidationColumnsDict.ContainsKey(ADataColumn))
            {
                AValidationColumnsDict.Add(ADataColumn, new TValidationControlsData(null, AColumnTitle));
            }

            String sReturn = StringHelper.GetNextCSV(ref AImportLine, ADelimiter);

            if (sReturn == String.Empty)
            {
                sReturn = ADefaultString;
            }

            Int32 retVal;

            if (Int32.TryParse(sReturn, out retVal))
            {
                return(retVal);
            }

            AMessages.Add(new TVerificationResult(String.Format(MCommonConstants.StrParsingErrorInLineColumn, ARowNumber, AColumnTitle),
                                                  String.Format(Catalog.GetString("Cannot convert '{0}' to an integer number.."), sReturn),
                                                  TResultSeverity.Resv_Critical));
            return(1);
        }
Пример #2
0
        /// <summary>
        /// Imports a string value from the specified text line using the specified delimiter
        /// </summary>
        /// <param name="AImportLine">The line containing the text to be imported.  When the method returns the imported value
        /// will have been removed from the start ready for the next call to an Import method.</param>
        /// <param name="ADelimiter">The delimiter</param>
        /// <param name="AColumnTitle"></param>
        /// <param name="ADataColumn"></param>
        /// <param name="ARowNumber"></param>
        /// <param name="AMessages"></param>
        /// <param name="AValidationColumnsDict"></param>
        /// <param name="ATreatEmptyStringAsText">When true the return value will be the empty string. When false the return value will be null.</param>
        /// <returns>The string value.  The AImportLine parameter will have been clipped.</returns>
        public static String ImportString(ref String AImportLine,
                                          String ADelimiter,
                                          String AColumnTitle,
                                          DataColumn ADataColumn,
                                          int ARowNumber,
                                          TVerificationResultCollection AMessages,
                                          TValidationControlsDict AValidationColumnsDict,
                                          bool ATreatEmptyStringAsText = true)
        {
            if ((ADataColumn != null) && (AValidationColumnsDict != null) && !AValidationColumnsDict.ContainsKey(ADataColumn))
            {
                AValidationColumnsDict.Add(ADataColumn, new TValidationControlsData(null, AColumnTitle));
            }

            String sReturn = StringHelper.GetNextCSV(ref AImportLine, ADelimiter);

            if ((sReturn == StringHelper.CSV_STRING_FORMAT_ERROR) && (AMessages != null))
            {
                AMessages.Add(new TVerificationResult(String.Format(MCommonConstants.StrParsingErrorInLineColumn, ARowNumber, AColumnTitle),
                                                      Catalog.GetString("Could not parse the quoted string. Did you forget a quotation mark?"),
                                                      TResultSeverity.Resv_Critical));
            }

            if ((sReturn.Length == 0) && !ATreatEmptyStringAsText)
            {
                return(null);
            }

            return(sReturn);
        }
Пример #3
0
        /// <summary>
        /// Imports a decimal value from the specified text line using the specified delimiter and culture info
        /// </summary>
        /// <param name="AImportLine">The line containing the text to be imported.  When the method returns the imported value
        /// will have been removed from the start ready for the next call to an Import method.</param>
        /// <param name="ADelimiter">The delimiter</param>
        /// <param name="ACultureInfoNumberFormat"></param>
        /// <param name="AColumnTitle"></param>
        /// <param name="ADataColumn"></param>
        /// <param name="ARowNumber"></param>
        /// <param name="AMessages"></param>
        /// <param name="AValidationColumnsDict"></param>
        /// <param name="ADefaultString"></param>
        /// <returns>The value.  The AImportLine parameter will have been clipped.</returns>
        public static decimal ImportDecimal(ref String AImportLine,
                                            String ADelimiter,
                                            CultureInfo ACultureInfoNumberFormat,
                                            String AColumnTitle,
                                            DataColumn ADataColumn,
                                            int ARowNumber,
                                            TVerificationResultCollection AMessages,
                                            TValidationControlsDict AValidationColumnsDict,
                                            String ADefaultString = "")
        {
            if ((ADataColumn != null) && (AValidationColumnsDict != null) && !AValidationColumnsDict.ContainsKey(ADataColumn))
            {
                AValidationColumnsDict.Add(ADataColumn, new TValidationControlsData(null, AColumnTitle));
            }

            String sReturn = StringHelper.GetNextCSV(ref AImportLine, ADelimiter);

            if (sReturn == String.Empty)
            {
                sReturn = ADefaultString;
            }

            try
            {
                decimal dec = Convert.ToDecimal(sReturn, ACultureInfoNumberFormat);
                return(dec);
            }
            catch
            {
                AMessages.Add(new TVerificationResult(String.Format(MCommonConstants.StrParsingErrorInLineColumn, ARowNumber, AColumnTitle),
                                                      String.Format(Catalog.GetString("Cannot convert '{0}' to a decimal number."), sReturn),
                                                      TResultSeverity.Resv_Critical));
                return(1.0m);
            }
        }
Пример #4
0
        /// <summary>
        /// Imports a string value from the specified text line using the specified delimiter
        /// </summary>
        /// <param name="AImportLine">The line containing the text to be imported.  When the method returns the imported value
        /// will have been removed from the start ready for the next call to an Import method.</param>
        /// <param name="ADelimiter">The delimiter</param>
        /// <param name="AColumnTitle"></param>
        /// <param name="ADataColumn"></param>
        /// <param name="ARowNumber"></param>
        /// <param name="AMessages"></param>
        /// <param name="AValidationColumnsDict"></param>
        /// <param name="ATreatEmptyStringAsText">When true the return value will be the empty string. When false the return value will be null.</param>
        /// <returns>The string value.  The AImportLine parameter will have been clipped.</returns>
        public static String ImportString(ref String AImportLine,
            String ADelimiter,
            String AColumnTitle,
            DataColumn ADataColumn,
            int ARowNumber,
            TVerificationResultCollection AMessages,
            TValidationControlsDict AValidationColumnsDict,
            bool ATreatEmptyStringAsText = true)
        {
            if ((ADataColumn != null) && (AValidationColumnsDict != null) && !AValidationColumnsDict.ContainsKey(ADataColumn))
            {
                AValidationColumnsDict.Add(ADataColumn, new TValidationControlsData(null, AColumnTitle));
            }

            String sReturn = StringHelper.GetNextCSV(ref AImportLine, ADelimiter);

            if ((sReturn == StringHelper.CSV_STRING_FORMAT_ERROR) && (AMessages != null))
            {
                AMessages.Add(new TVerificationResult(String.Format(MCommonConstants.StrParsingErrorInLineColumn, ARowNumber, AColumnTitle),
                        Catalog.GetString("Could not parse the quoted string. Did you forget a quotation mark?"),
                        TResultSeverity.Resv_Critical));
            }

            if ((sReturn.Length == 0) && !ATreatEmptyStringAsText)
            {
                return null;
            }

            return sReturn;
        }
Пример #5
0
        /// <summary>
        /// Imports a Date value from the specified text line using the specified delimiter
        /// </summary>
        /// <param name="AImportLine">The line containing the text to be imported.  When the method returns the imported value
        /// will have been removed from the start ready for the next call to an Import method.</param>
        /// <param name="ADelimiter">The delimiter</param>
        /// <param name="ACultureInfoDateFormat"></param>
        /// <param name="ADateMayBeAnInteger"></param>
        /// <param name="AColumnTitle"></param>
        /// <param name="ADataColumn"></param>
        /// <param name="ARowNumber"></param>
        /// <param name="AMessages"></param>
        /// <param name="AValidationColumnsDict"></param>
        /// <param name="ADefaultString"></param>
        /// <returns>The date value.  The AImportLine parameter will have been clipped.</returns>
        public static DateTime ImportDate(ref String AImportLine,
                                          String ADelimiter,
                                          CultureInfo ACultureInfoDateFormat,
                                          bool ADateMayBeAnInteger,
                                          String AColumnTitle,
                                          DataColumn ADataColumn,
                                          int ARowNumber,
                                          TVerificationResultCollection AMessages,
                                          TValidationControlsDict AValidationColumnsDict,
                                          String ADefaultString = "")
        {
            if ((ADataColumn != null) && (AValidationColumnsDict != null) && !AValidationColumnsDict.ContainsKey(ADataColumn))
            {
                AValidationColumnsDict.Add(ADataColumn, new TValidationControlsData(null, AColumnTitle));
            }

            String sDate = StringHelper.GetNextCSV(ref AImportLine, ADelimiter);

            int dateAsInt;
            int dateLength = sDate.Length;

            if (sDate == String.Empty)
            {
                sDate = ADefaultString;
            }
            else if (ADateMayBeAnInteger && ((dateLength == 6) || (dateLength == 8)) && !sDate.Contains(".") && !sDate.Contains(","))
            {
                if (int.TryParse(sDate, out dateAsInt) && (dateAsInt > 10100) && (dateAsInt < 311300))
                {
                    sDate = sDate.Insert(dateLength - 2, "-").Insert(dateLength - 4, "-");
                }
                else if (int.TryParse(sDate, out dateAsInt) && (dateAsInt > 1011900) && (dateAsInt < 31133000))
                {
                    sDate = sDate.Insert(dateLength - 4, "-").Insert(dateLength - 6, "-");
                }
            }

            DateTime dtReturn;

            try
            {
                dtReturn = Convert.ToDateTime(sDate, ACultureInfoDateFormat);
            }
            catch (Exception)
            {
                AMessages.Add(new TVerificationResult(String.Format(MCommonConstants.StrParsingErrorInLineColumn, ARowNumber, AColumnTitle),
                                                      String.Format(Catalog.GetString("Cannot convert '{0}' to a date."), sDate),
                                                      TResultSeverity.Resv_Critical));
                TLogging.Log("Problem parsing " + sDate + " with format " + ACultureInfoDateFormat.DateTimeFormat.ShortDatePattern);
                return(DateTime.Today);
            }

            return(dtReturn);
        }
Пример #6
0
        /// <summary>
        /// Imports a decimal value from the specified text line using the specified delimiter and culture info
        /// </summary>
        /// <param name="AImportLine">The line containing the text to be imported.  When the method returns the imported value
        /// will have been removed from the start ready for the next call to an Import method.</param>
        /// <param name="ADelimiter">The delimiter</param>
        /// <param name="ACultureInfoNumberFormat"></param>
        /// <param name="AColumnTitle"></param>
        /// <param name="ADataColumn"></param>
        /// <param name="ARowNumber"></param>
        /// <param name="AMessages"></param>
        /// <param name="AValidationColumnsDict"></param>
        /// <param name="ADefaultString"></param>
        /// <returns>The value.  The AImportLine parameter will have been clipped.</returns>
        public static decimal ImportDecimal(ref String AImportLine,
                                            String ADelimiter,
                                            CultureInfo ACultureInfoNumberFormat,
                                            String AColumnTitle,
                                            DataColumn ADataColumn,
                                            int ARowNumber,
                                            TVerificationResultCollection AMessages,
                                            TValidationControlsDict AValidationColumnsDict,
                                            String ADefaultString = "")
        {
            if ((ADataColumn != null) && (AValidationColumnsDict != null) && !AValidationColumnsDict.ContainsKey(ADataColumn))
            {
                AValidationColumnsDict.Add(ADataColumn, new TValidationControlsData(null, AColumnTitle));
            }

            String sReturn = StringHelper.GetNextCSV(ref AImportLine, ADelimiter);

            if (sReturn == String.Empty)
            {
                sReturn = ADefaultString;
            }

            try
            {
                // Always use the invariant culture
                if (ACultureInfoNumberFormat.NumberFormat.NumberDecimalSeparator == ".")
                {
                    // Decimal dot: just replace thousands with nothing (comma, space and apostrophe)
                    return(Convert.ToDecimal(sReturn.Replace(",", "").Replace(" ", "").Replace("'", ""), CultureInfo.InvariantCulture));
                }
                else
                {
                    // Decimal comma: replace thousands with nothing (dot, space and apostrophe) and then comma with dot
                    return(Convert.ToDecimal(sReturn.Replace(".", "").Replace(" ", "").Replace("'", "").Replace(",",
                                                                                                                "."), CultureInfo.InvariantCulture));
                }
            }
            catch
            {
                AMessages.Add(new TVerificationResult(String.Format(MCommonConstants.StrParsingErrorInLineColumn, ARowNumber, AColumnTitle),
                                                      String.Format(Catalog.GetString("Cannot convert '{0}' to a decimal number."), sReturn),
                                                      TResultSeverity.Resv_Critical));
                return(1.0m);
            }
        }
Пример #7
0
        /// <summary>
        /// Imports a Date value from the specified text line using the specified delimiter
        /// </summary>
        /// <param name="AImportLine">The line containing the text to be imported.  When the method returns the imported value
        /// will have been removed from the start ready for the next call to an Import method.</param>
        /// <param name="ADelimiter">The delimiter</param>
        /// <param name="ACultureInfoDateFormat"></param>
        /// <param name="AColumnTitle"></param>
        /// <param name="ADataColumn"></param>
        /// <param name="ARowNumber"></param>
        /// <param name="AMessages"></param>
        /// <param name="AValidationColumnsDict"></param>
        /// <param name="ADefaultString"></param>
        /// <returns>The date value.  The AImportLine parameter will have been clipped.</returns>
        public static DateTime ImportDate(ref String AImportLine,
                                          String ADelimiter,
                                          CultureInfo ACultureInfoDateFormat,
                                          String AColumnTitle,
                                          DataColumn ADataColumn,
                                          int ARowNumber,
                                          TVerificationResultCollection AMessages,
                                          TValidationControlsDict AValidationColumnsDict,
                                          String ADefaultString = "")
        {
            if ((ADataColumn != null) && (AValidationColumnsDict != null) && !AValidationColumnsDict.ContainsKey(ADataColumn))
            {
                AValidationColumnsDict.Add(ADataColumn, new TValidationControlsData(null, AColumnTitle));
            }

            String sDate = StringHelper.GetNextCSV(ref AImportLine, ADelimiter);

            if (sDate == String.Empty)
            {
                sDate = ADefaultString;
            }

            DateTime dtReturn;

            try
            {
                dtReturn = Convert.ToDateTime(sDate, ACultureInfoDateFormat);
            }
            catch (Exception)
            {
                AMessages.Add(new TVerificationResult(String.Format(MCommonConstants.StrParsingErrorInLineColumn, ARowNumber, AColumnTitle),
                                                      String.Format(Catalog.GetString("Cannot convert '{0}' to a date."), sDate),
                                                      TResultSeverity.Resv_Critical));
                TLogging.Log("Problem parsing " + sDate + " with format " + ACultureInfoDateFormat.DateTimeFormat.ShortDatePattern);
                return(DateTime.Today);
            }

            return(dtReturn);
        }
Пример #8
0
        /// <summary>
        /// Imports a boolean value from the specified text line using the specified delimiter.
        /// </summary>
        /// <param name="AImportLine">The line containing the text to be imported.  When the method returns the imported value
        /// will have been removed from the start ready for the next call to an Import method.</param>
        /// <param name="ADelimiter">The delimiter</param>
        /// <param name="AColumnTitle"></param>
        /// <param name="ADataColumn"></param>
        /// <param name="ARowNumber"></param>
        /// <param name="AMessages"></param>
        /// <param name="AValidationColumnsDict"></param>
        /// <param name="ADefaultString">A string to apply if the import returns empty text.  Must be either 'yes' or 'no'</param>
        /// <returns>Returns true if the text is 'yes', false if the text is 'no'. Otherwise the method returns a critical Verification Result.</returns>
        public static Boolean ImportBoolean(ref String AImportLine,
                                            String ADelimiter,
                                            String AColumnTitle,
                                            DataColumn ADataColumn,
                                            int ARowNumber,
                                            TVerificationResultCollection AMessages,
                                            TValidationControlsDict AValidationColumnsDict,
                                            String ADefaultString = "")
        {
            if ((ADataColumn != null) && (AValidationColumnsDict != null) && !AValidationColumnsDict.ContainsKey(ADataColumn))
            {
                AValidationColumnsDict.Add(ADataColumn, new TValidationControlsData(null, AColumnTitle));
            }

            String sReturn  = StringHelper.GetNextCSV(ref AImportLine, ADelimiter).ToLower();
            String sDefault = ADefaultString.ToLower();

            bool canBeEmptyString = ((sDefault == "yes") || (sDefault == "no"));

            if ((sReturn == String.Empty) && canBeEmptyString)
            {
                sReturn = sDefault;
            }

            if ((sReturn == "yes") || (sReturn == "no"))
            {
                return(sReturn.Equals("yes"));
            }

            AMessages.Add(new TVerificationResult(String.Format(MCommonConstants.StrParsingErrorInLineColumn, ARowNumber, AColumnTitle),
                                                  String.Format(Catalog.GetString("Cannot convert '{0}' to a Boolean. The text must be {1}. The text is not case-sensitive."),
                                                                sReturn,
                                                                canBeEmptyString ? Catalog.GetString("one of 'yes', 'no' or an empty string") : Catalog.GetString("either 'yes' or 'no'")),
                                                  TResultSeverity.Resv_Critical));
            return(false);
        }
Пример #9
0
        private DateTime ImportDate(String AColumnTitle,
            DataColumn ADataColumn,
            int ARowNumber,
            TVerificationResultCollection AMessages,
            TValidationControlsDict AValidationColumnsDict,
            String ADefaultString = "")
        {
            if ((ADataColumn != null) && (AValidationColumnsDict != null) && !AValidationColumnsDict.ContainsKey(ADataColumn))
            {
                AValidationColumnsDict.Add(ADataColumn, new TValidationControlsData(null, AColumnTitle));
            }

            String sDate = StringHelper.GetNextCSV(ref FImportLine, FDelimiter);

            if (sDate == String.Empty)
            {
                sDate = ADefaultString;
            }

            DateTime dtReturn;

            try
            {
                dtReturn = Convert.ToDateTime(sDate, FCultureInfoDate);
            }
            catch (Exception)
            {
                AMessages.Add(new TVerificationResult(String.Format(MCommonConstants.StrParsingErrorInLineColumn, ARowNumber, AColumnTitle),
                        String.Format(Catalog.GetString("Cannot convert '{0}' to a date. Will assume a value of 'Today'."), sDate),
                        TResultSeverity.Resv_Critical));
                TLogging.Log("Problem parsing " + sDate + " with format " + FCultureInfoDate.DateTimeFormat.ShortDatePattern);
                return DateTime.Today;
            }

            return dtReturn;
        }
Пример #10
0
        private decimal ImportDecimal(String AColumnTitle,
            DataColumn ADataColumn,
            int ARowNumber,
            TVerificationResultCollection AMessages,
            TValidationControlsDict AValidationColumnsDict,
            String ADefaultString = "")
        {
            if ((ADataColumn != null) && (AValidationColumnsDict != null) && !AValidationColumnsDict.ContainsKey(ADataColumn))
            {
                AValidationColumnsDict.Add(ADataColumn, new TValidationControlsData(null, AColumnTitle));
            }

            String sReturn = StringHelper.GetNextCSV(ref FImportLine, FDelimiter);

            if (sReturn == String.Empty)
            {
                sReturn = ADefaultString;
            }

            try
            {
                decimal dec = Convert.ToDecimal(sReturn, FCultureInfoNumberFormat);
                return dec;
            }
            catch
            {
                AMessages.Add(new TVerificationResult(String.Format(MCommonConstants.StrParsingErrorInLineColumn, ARowNumber, AColumnTitle),
                        String.Format(Catalog.GetString("Cannot convert '{0}' to a decimal number. Will assume a value of 1.00."), sReturn),
                        TResultSeverity.Resv_Critical));
                return 1.0m;
            }
        }
Пример #11
0
        private Int32 ImportInt32(String AColumnTitle,
            DataColumn ADataColumn,
            int ARowNumber,
            TVerificationResultCollection AMessages,
            TValidationControlsDict AValidationColumnsDict,
            String ADefaultString = "")
        {
            if ((ADataColumn != null) && (AValidationColumnsDict != null) && !AValidationColumnsDict.ContainsKey(ADataColumn))
            {
                AValidationColumnsDict.Add(ADataColumn, new TValidationControlsData(null, AColumnTitle));
            }

            String sReturn = StringHelper.GetNextCSV(ref FImportLine, FDelimiter);

            if (sReturn == String.Empty)
            {
                sReturn = ADefaultString;
            }

            Int32 retVal;

            if (Int32.TryParse(sReturn, out retVal))
            {
                return retVal;
            }

            AMessages.Add(new TVerificationResult(String.Format(MCommonConstants.StrParsingErrorInLineColumn, ARowNumber, AColumnTitle),
                    String.Format(Catalog.GetString("Cannot convert '{0}' to a number. Will assume a value of -1."), sReturn),
                    TResultSeverity.Resv_Critical));
            return -1;
        }
Пример #12
0
        private Boolean ImportBoolean(String AColumnTitle,
            DataColumn ADataColumn,
            TValidationControlsDict AValidationColumnsDict,
            String ADefaultString = "")
        {
            if ((ADataColumn != null) && (AValidationColumnsDict != null) && !AValidationColumnsDict.ContainsKey(ADataColumn))
            {
                AValidationColumnsDict.Add(ADataColumn, new TValidationControlsData(null, AColumnTitle));
            }

            String sReturn = StringHelper.GetNextCSV(ref FImportLine, FDelimiter);

            if (sReturn == String.Empty)
            {
                sReturn = ADefaultString;
            }

            return sReturn.ToLower().Equals("yes");
        }
Пример #13
0
        private String ImportString(String AColumnTitle,
            DataColumn ADataColumn,
            TValidationControlsDict AValidationColumnsDict,
            bool ATreatEmptyStringAsText = true)
        {
            if ((ADataColumn != null) && (AValidationColumnsDict != null) && !AValidationColumnsDict.ContainsKey(ADataColumn))
            {
                AValidationColumnsDict.Add(ADataColumn, new TValidationControlsData(null, AColumnTitle));
            }

            String sReturn = StringHelper.GetNextCSV(ref FImportLine, FDelimiter);

            if ((sReturn.Length == 0) && !ATreatEmptyStringAsText)
            {
                return null;
            }

            return sReturn;
        }
Пример #14
0
        /// <summary>
        /// Imports a boolean value from the specified text line using the specified delimiter.
        /// </summary>
        /// <param name="AImportLine">The line containing the text to be imported.  When the method returns the imported value
        /// will have been removed from the start ready for the next call to an Import method.</param>
        /// <param name="ADelimiter">The delimiter</param>
        /// <param name="AColumnTitle"></param>
        /// <param name="ADataColumn"></param>
        /// <param name="ARowNumber"></param>
        /// <param name="AMessages"></param>
        /// <param name="AValidationColumnsDict"></param>
        /// <param name="ADefaultString">A string to apply if the import returns empty text.  Must be either 'yes' or 'no'</param>
        /// <returns>Returns true if the text is 'yes', false if the text is 'no'. Otherwise the method returns a critical Verification Result.</returns>
        public static Boolean ImportBoolean(ref String AImportLine,
            String ADelimiter,
            String AColumnTitle,
            DataColumn ADataColumn,
            int ARowNumber,
            TVerificationResultCollection AMessages,
            TValidationControlsDict AValidationColumnsDict,
            String ADefaultString = "")
        {
            if ((ADataColumn != null) && (AValidationColumnsDict != null) && !AValidationColumnsDict.ContainsKey(ADataColumn))
            {
                AValidationColumnsDict.Add(ADataColumn, new TValidationControlsData(null, AColumnTitle));
            }

            String sReturn = StringHelper.GetNextCSV(ref AImportLine, ADelimiter).ToLower();
            String sDefault = ADefaultString.ToLower();

            bool canBeEmptyString = ((sDefault == "yes") || (sDefault == "no"));

            if ((sReturn == String.Empty) && canBeEmptyString)
            {
                sReturn = sDefault;
            }

            if ((sReturn == "yes") || (sReturn == "no"))
            {
                return sReturn.Equals("yes");
            }

            AMessages.Add(new TVerificationResult(String.Format(MCommonConstants.StrParsingErrorInLineColumn, ARowNumber, AColumnTitle),
                    String.Format(Catalog.GetString("Cannot convert '{0}' to a Boolean. The text must be {1}. The text is not case-sensitive."),
                        sReturn,
                        canBeEmptyString ? Catalog.GetString("one of 'yes', 'no' or an empty string") : Catalog.GetString("either 'yes' or 'no'")),
                    TResultSeverity.Resv_Critical));
            return false;
        }