Example #1
0
        public void CalculateConflict()
        {
            ConflictList = new List <DocumentDiff>();
            AddList      = new List <string>();
            ResultDict   = OriginalDict.ToDictionary(k => k.Key, k => k.Value);
            foreach (var key in NewDict.Keys)
            {
                List <string> existingKeys = FindExistingRelatedKeys(key);

                if (OriginalDict.ContainsKey(key))
                {
                    //skip , since the original dict has been manually edited, we don't want new records to mess up existing synonyms.
                    continue;
                }
                else if (existingKeys.Count != 0)
                {
                    //add this to "TO BE DECIDED" list, let user decide what to do
                    ConflictList.Add(new DocumentDiff
                    {
                        OldValue = existingKeys.Select(p => $"{OriginalDict[p]}=>{p}").ToList(),
                        NewValue = $"{NewDict[key]}=>{key}"
                    });
                }
                else
                {
                    //add to "TO BE ADDED" list, let user decide whether add it or skip it
                    AddList.Add($"{NewDict[key]}=>{key}");
                }
            }
        }
Example #2
0
 public List <string> FindExistingRelatedKeys(string key)
 {
     return(OriginalDict.Where(p => p.Value.Split(',').Contains(key))
            .Select(p => p.Key).ToList());
 }