public AnswerModel(string answer, string source = null, string metaInfo = null) { if (string.IsNullOrEmpty(answer)) { throw new ArgumentException("Answer cannot be null or empty.", nameof(answer)); } AnswerId = Guid.NewGuid(); DisplayAnswer = answer; metaInfo = string.IsNullOrEmpty(metaInfo) ? string.Empty : metaInfo.Trim(); if (!string.IsNullOrEmpty(metaInfo)) { string[] splits = metaInfo.Split(';'); foreach (string split in splits) { string[] innerSplits = split.Split(':'); string metaInfoName = innerSplits[0]; string metaInfoValue = string.Empty; if (innerSplits.Length > 1) { metaInfoValue = innerSplits[1]; } MetaInfoMap.Add(metaInfoName, metaInfoValue); } } Source = source; Answer = DisplayAnswer.Trim().Replace("\n", string.Empty).ToLowerInvariant(); }
public void MergeMetaInfo(string metaInfo) { metaInfo = string.IsNullOrEmpty(metaInfo) ? string.Empty : metaInfo.Trim(); if (!string.IsNullOrEmpty(metaInfo)) { string[] splits = metaInfo.Split(';'); foreach (string split in splits) { string[] innerSplits = split.Split(':'); string metaInfoName = innerSplits[0]; string metaInfoValue = string.Empty; if (innerSplits.Length > 1) { metaInfoValue = innerSplits[1]; } if (!MetaInfoMap.ContainsKey(metaInfoName)) { MetaInfoMap.Add(metaInfoName, metaInfoValue); } } } }