Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        public bool MatchMetaInfo(string metaInfo)
        {
            bool result = false;

            if (!string.IsNullOrEmpty(metaInfo))
            {
                string[] splits = metaInfo.Split(';');
                foreach (string split in splits)
                {
                    string[] innerSplits   = split.Split(':');
                    string   metaInfoName  = innerSplits[0];
                    string   metaInfoValue = null;
                    if (innerSplits.Length > 1)
                    {
                        metaInfoValue = innerSplits[1];
                    }

                    if (MetaInfoMap.ContainsKey(metaInfoName))
                    {
                        if (string.IsNullOrEmpty(metaInfoValue))
                        {
                            result = string.IsNullOrEmpty(MetaInfoMap[metaInfoName]);
                        }
                        else
                        {
                            result = metaInfoValue.Equals(MetaInfoMap[metaInfoName]);
                        }
                    }
                }
            }

            return(result);
        }
Exemplo n.º 3
0
        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);
                    }
                }
            }
        }