Exemplo n.º 1
0
        public void Update(List <List <data_Organization_v1List> > input)
        {
            int counter = 0;

            foreach (List <data_Organization_v1List> block in input)
            {
                using (UNS.Models.UNSModel context = new UNS.Models.UNSModel())
                {
                    block.RemoveAll(x => x.global_id == null);
                    counter += block.Count;
                    foreach (var row in block)
                    {
                        if (row.geoData == null)
                        {
                            row.geoData = new GeoData();
                        }
                    }
                    var orgs = block.Select(s => Mapper.Map <data_Organization_v1List, Organization>(s)).ToList();
                    ///TODO реализовать проверку на совпадение имен библиотек, так как есть филиалы
                    context.Organizations.AddOrUpdate(u => new { u.OGRN, u.INN, u.FullName }, orgs.ToArray());
                    Logger.Logger.Info(string.Join(" ", typeof(data_Organization_v1List).Name, "Сохранено", block.Count.ToString(), "всего", counter.ToString()));
                    context.SaveChanges();
                }
            }
        }
Exemplo n.º 2
0
        public void Room()
        {
            using (var context = new UNS.Models.UNSModel())
            {
                int counter       = 0;
                int counterLength = 100;
                context.Configuration.AutoDetectChangesEnabled = false;
                ((IObjectContextAdapter)context).ObjectContext.CommandTimeout = 10000;
                Logger.Logger.Info(string.Join(" ", "Удаляются старые данные"));
                context.AddressAOs.RemoveRange(context.AddressAOs);
                Logger.Logger.Info(string.Join(" ", "Начато сохранение"));
                context.SaveChanges();
                Logger.Logger.Info(string.Join(" ", "Сохранение завершено"));
                Logger.Logger.Info(string.Join(" ", "Поиск AddressObjects"));
                var mappedblock = context.AddressObjects.Where(w => w.REGIONCODE == "77").AsEnumerable().Select(s => Mapper.Map <AddressObject, UNS.Models.Entities.Fias.AddressAO>(s)).ToList();
                context.Set <UNS.Models.Entities.Fias.AddressAO>().AddRange(mappedblock);
                context.SaveChanges();
                var steads = (from
                              stead in context.Stead
                              join ao in context.AddressObjects
                              on stead.PARENTGUID equals ao.AOGUID
                              where ao.REGIONCODE == "77"
                              select stead).AsEnumerable().Distinct().Select(stead => Mapper.Map <UNS.Models.Entities.Stead, UNS.Models.Entities.Fias.AddressStead>(stead)).GroupBy(_ => counter++ / counterLength).ToList();
                foreach (var stead in steads)
                {
                    context.Set <AddressStead>().AddRange(stead);
                    context.SaveChanges();
                    Logger.Logger.Info(string.Join(" ", typeof(Data_Organization_5988).Name, "Сохранено"));
                }

                /*var houses = (from
                 *                house in context.Houses
                 *                join ao in context.AddressObjects
                 *                on house.AOGUID equals ao.AOGUID
                 *                select Mapper.Map<UNS.Models.Entities.House, UNS.Models.Entities.>(house)).ToList();
                 * context.Set<UNS.Models.Entities.Fias.AO>().AddRange(houses);*/
            }
        }