Exemplo n.º 1
0
        private static void EnsureRegionExists(string region)
        {
            if (Dicts.RegionDict.ContainsKey(region))
            {
                return;
            }
            bool found = false;

            foreach (Region item in context.Regions.ToList())
            {
                RegionsDictionaryOptimizationData oneOptimization = item.RegionsDictionaryOptimizationDatas.FirstOrDefault() ?? new RegionsDictionaryOptimizationData()
                {
                    RegionID = item.ID
                };
                RegionsDictionaryOptimizationData twoOptimization = new RegionsDictionaryOptimizationData();

                bool equal = Comparator.CompareRegions(item.Name, region, ref oneOptimization, ref twoOptimization);

                if (oneOptimization.WikiPageID.HasValue)
                {
                    item.RegionsDictionaryOptimizationDatas.Add(oneOptimization);
                    context.SaveChanges();
                }
                if (equal)
                {
                    Dicts.RegionDict.Add(region, item);
                    found = true;
                    break;
                }
            }
            if (!found)
            {
                Region newReg = new Region();
                newReg.Name = region;
                context.Regions.Add(newReg);
                context.SaveChanges();
                Dicts.RegionDict.Add(region, newReg);
            }
        }