Beispiel #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();
                }
            }
        }
Beispiel #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);*/
            }
        }
 public Organization_v1List_Organization_MapProfile(UNS.Models.UNSModel context) : this()
 {
     ContexUNS = context;
 }
        public static List <Organization> Convert(IEnumerable <Data_Organization_2748> data_Organization_2748s, UNS.Models.UNSModel context)
        {
            var result = new List <Organization>();

            var orgNames = from org in data_Organization_2748s
                           group org by org.BalanceHolderName;

            if (orgNames.Any())
            {
                foreach (IGrouping <string, Data_Organization_2748> orgGroup in orgNames)
                {
                    var neworg = new Organization()
                    {
                        Addresses         = new List <Organization_House>(),
                        FullName          = orgGroup.Key,
                        OwnerRawAddresses = new List <OwnerRawAddress>(),
                        PersonPositions   = new List <PersonPosition>(),
                        //EmailItems = new List<UNS.Models.Entities.EmailItem>(),
                        //FaxItems = new List<UNS.Models.Entities.FaxItem>()
                    };
                    foreach (var grouprecord in orgGroup)
                    {
                        var geo       = grouprecord.geoData.Coordinates;
                        var addresses = from hbti in context.HouseFullBTIs
                                        join hf in context.HouseFulls
                                        on hbti.HouseFull equals hf
                                        join h in context.Houses
                                        on hf.HOUSEID equals h.HOUSEID
                                        where (hbti.UNOM.ToString() == grouprecord.UNOM
                                               //|| hf.GeoData.Intersects(geo)
                                               ) &&
                                        DateTime.Now <= h.ENDDATE && DateTime.Now >= h.STARTDATE
                                        select new { hbti, hf, h };
                        if (addresses.Any())
                        {
                            var address = addresses.FirstOrDefault();
                            neworg.Addresses.Add(new Organization_House()
                            {
                                HouseGUID    = address.hf.HOUSEGUID,
                                TypeRelation = "управляет",
                                Source       = grouprecord.GetType().Name,
                                Comments     = grouprecord.Name
                            });
                        }
                        else
                        {
                            neworg.OwnerRawAddresses.Add(new OwnerRawAddress()
                            {
                                DirtyAddress = grouprecord.Location,
                                Address      = grouprecord.Location,
                                Source       = grouprecord.GetType().Name,
                                TypeOwner    = "управляет"
                            });
                        }
                    }
                    result.Add(neworg);
                }
            }

            return(result);
        }