public override bool Equals(Object obj) { if ((obj == null) || !this.GetType().Equals(obj.GetType())) { return(false); } else { DateResult dr = (DateResult)obj; return(OriginalValue.Equals(dr.OriginalValue) && StartIndex == dr.StartIndex && EndIndex == dr.EndIndex); } }
private DateResult CreateDateResult(Match match, string format, int distance, List <string> valueToDetec) { DateResult dateResult = new DateResult(); dateResult.Status = distance > 0 ? Status.Error : Status.OK; dateResult.OriginalValue = match.Value.Substring(1, (match.Value.Length - 2)); DateIdentificator dateIdentificator = new DateIdentificator(_months, _outputFormat); Tuple <string, float> supposedValue_accuracy = dateIdentificator.GetSupposedValue(valueToDetec); dateResult.SupposedValue = supposedValue_accuracy.Item1; dateResult.Accuracy = supposedValue_accuracy.Item2; dateResult.StartIndex = match.Index + 1; dateResult.EndIndex = match.Index + match.Length - 2; dateResult.Format.Add(format, distance); return(dateResult); }
private List <DateResult> GetDateResults(List <DateResult> dateResults, string stringRegEx, IEnumerable <string> formats) { Regex regex = new Regex(@stringRegEx); MatchCollection matchCollection = regex.Matches(_stringToScan); foreach (Match match in matchCollection) { foreach (string format in formats) { DateResult dateResult = GetDateResultFromWordFormats(match, format); if (dateResult != null) { dateResults = ExtendDateResults(dateResults, dateResult); } } } return(dateResults); }
private List <DateResult> ExtendDateResults(List <DateResult> dateResults, DateResult dateResult) { if (dateResults.Contains(dateResult)) { DateResult primaryDt = dateResults.Find(obj => obj.Equals(dateResult)); foreach (KeyValuePair <string, int> kvp in dateResult.Format) { if (kvp.Value == 0) { primaryDt.Status = Status.OK; } if (!primaryDt.Format.ContainsKey(kvp.Key)) { primaryDt.Format.Add(kvp.Key, kvp.Value); } } } else { dateResults.Add(dateResult); } return(dateResults); }