Beispiel #1
0
        public Organization_v1_1_Organization_MapProfile()
        {
            CreateMap <data_Organization_v1_1, Organization>()
            .ForMember(s => s.GeoData, d => d.MapFrom(s => s.geoData.Coordinates))
            .ForMember(s => s.OGRN, d => d.MapFrom(s => s.OrgInfo[0].OGRN))
            .ForMember(s => s.INN, d => d.MapFrom(s => s.OrgInfo[0].INN))
            .ForMember(s => s.KPP, d => d.MapFrom(s => s.OrgInfo[0].KPP))
            .ForMember(s => s.UrAddress, d => d.MapFrom(s => s.OrgInfo[0].LegalAddress))
            .ForMember(d => d.PhoneItems, opt =>
            {
                opt.PreCondition(member => member.PublicPhone != null);
                opt.MapFrom((src, o) =>
                {
                    List <UNS.Models.Entities.PhoneItem> res = new List <UNS.Models.Entities.PhoneItem>();
                    foreach (var n in src.PublicPhone)
                    {
                        res.Add(new UNS.Models.Entities.PhoneItem()
                        {
                            Phone = n.PublicPhone
                        });
                    }
                    return(res);
                });
            })
            .ForMember(d => d.EmailItems, opt =>
            {
                opt.PreCondition(member => member.Email != null);
                opt.MapFrom((src, o) =>
                {
                    List <UNS.Models.Entities.EmailItem> res = new List <UNS.Models.Entities.EmailItem>();
                    foreach (var n in src.Email)
                    {
                        res.Add(new UNS.Models.Entities.EmailItem()
                        {
                            Email = n.Email
                        });
                    }
                    return(res);
                });
            })
            .ForMember(d => d.FaxItems, opt =>
            {
                opt.PreCondition(member => member.Fax != null);
                opt.MapFrom((src, o) =>
                {
                    List <UNS.Models.Entities.FaxItem> res = new List <UNS.Models.Entities.FaxItem>();
                    foreach (var n in src.Fax)
                    {
                        res.Add(new UNS.Models.Entities.FaxItem()
                        {
                            Fax = n.Fax
                        });
                    }
                    return(res);
                });
            })
            .ForMember(d => d.OwnerRawAddresses, opt => opt.MapFrom((src, o) =>
            {
                List <OwnerRawAddress> res = new List <OwnerRawAddress>();
                res.Add(new OwnerRawAddress()
                {
                    Address   = src.OrgInfo[0].LegalAddress,
                    TypeOwner = "юрадрес",
                    Source    = "data_mos_ru" //,
                                              //Organization = o
                });
                foreach (var oa in src.ObjectAddress)
                {
                    res.Add(new OwnerRawAddress()
                    {
                        Address   = oa.Address,
                        TypeOwner = "использует",
                        Source    = "data_mos_ru" //,
                                                  //Organization = o
                    });
                }
                return(res);
            }))
            .ForMember(d => d.PersonPositions, opt => opt.MapFrom((src, o) =>
            {
                List <UNS.Models.Entities.PhoneItem> phones = new List <UNS.Models.Entities.PhoneItem>();
                try
                {
                    foreach (var n in src.OrgInfo[0].ChiefPhone)
                    {
                        phones.Add(new UNS.Models.Entities.PhoneItem()
                        {
                            Phone = n.ChiefPhone
                        });
                    }
                }
                catch (NullReferenceException)
                { }
                try
                {
                    foreach (var n in src.ChiefPhone)
                    {
                        phones.Add(new UNS.Models.Entities.PhoneItem()
                        {
                            Phone = n.ChiefPhone
                        });
                    }
                }
                catch (NullReferenceException)
                { }
                var person    = new Person();
                var splitters = new List <string>();
                splitters.Add(" ");
                var words = src.ChiefName.Split(splitters.ToArray(), StringSplitOptions.None);
                switch (words.Length)
                {
                case 1:
                    person.Family = words[0];
                    break;

                case 2:
                    person.Name   = words[1];
                    person.Family = words[0];
                    break;

                case 3:
                    person.Name       = words[1];
                    person.Family     = words[0];
                    person.Patronymic = words[2];
                    break;
                }
                var pptInBase = ContexUNS.PersonPositionTypes.Where(w => w.PositionType_Nominative.ToLower() == src.ChiefPosition.ToLower()).ToList();
                PersonPositionType ppt;
                if (pptInBase.Any())
                {
                    ppt = pptInBase.FirstOrDefault();
                }
                else
                {
                    ppt = new PersonPositionType()
                    {
                        PositionType = src.ChiefPosition
                    };
                    ContexUNS.PersonPositionTypes.Add(ppt);
                };

                List <PersonPosition> directorPosition =
                    new List <PersonPosition>()
                {
                    new PersonPosition()
                    {
                        //Organization = o,
                        Person = person,
                        Phones = phones,
                        //Director = true,
                        PositionType = ppt
                    }
                };
                return(directorPosition);
            }))
            .ForAllOtherMembers(options => options.PreCondition((source, destination, member) => member != null));
        }
        public Organization_v1List_Organization_MapProfile()
        {
            CreateMap <data_Organization_v1List, Organization>()
            .ForMember(s => s.GeoData, d => d.MapFrom(s => s.geoData.Coordinates))
            .ForMember(s => s.OGRN, d => d.MapFrom(s => s.OrgInfo[0].OGRN))
            .ForMember(s => s.INN, d => d.MapFrom(s => s.OrgInfo[0].INN))
            .ForMember(s => s.KPP, d => d.MapFrom(s => s.OrgInfo[0].KPP))
            .ForMember(s => s.UrAddress, d => d.MapFrom(s => s.OrgInfo[0].LegalAddress))
            .ForMember(d => d.PhoneItems, opt => opt.MapFrom((src, o) =>
            {
                List <UNS.Models.Entities.PhoneItem> res = new List <UNS.Models.Entities.PhoneItem>();
                foreach (var n in src.PublicPhone)
                {
                    foreach (var pp in n.PublicPhone)
                    {
                        res.Add(new UNS.Models.Entities.PhoneItem()
                        {
                            Phone = pp
                        });
                    }
                }
                return(res);
            }))
            .ForMember(d => d.EmailItems, opt => opt.MapFrom((src, o) =>
            {
                List <data_mos_ru.Entities.EmailItem> res = new List <data_mos_ru.Entities.EmailItem>();
                foreach (var n in src.Email)
                {
                    foreach (var e in n.Email)
                    {
                        res.Add(new data_mos_ru.Entities.EmailItem()
                        {
                            Email = e
                        });
                    }
                }
                return(res);
            }))
            .ForMember(d => d.FaxItems, opt => opt.MapFrom((src, o) =>
            {
                List <UNS.Models.Entities.FaxItem> res = new List <UNS.Models.Entities.FaxItem>();
                foreach (var n in src.Fax)
                {
                    foreach (var pp in n.Fax)
                    {
                        res.Add(new UNS.Models.Entities.FaxItem()
                        {
                            Fax = pp
                        });
                    }
                }
                return(res);
            }))
            .ForMember(d => d.FaxItems, opt => opt.MapFrom((src, o) =>
            {
                List <UNS.Models.Entities.FaxItem> res = new List <UNS.Models.Entities.FaxItem>();
                foreach (var n in src.Fax)
                {
                    foreach (var pp in n.Fax)
                    {
                        res.Add(new UNS.Models.Entities.FaxItem()
                        {
                            Fax = pp
                        });
                    }
                }
                return(res);
            }))
            .ForMember(d => d.OwnerRawAddresses, opt => opt.MapFrom((src, o) =>
            {
                List <OwnerRawAddress> res = new List <OwnerRawAddress>();
                foreach (var n in src.ObjectAddress)
                {
                    res.Add(new OwnerRawAddress()
                    {
                        Address   = n.Address,
                        PostCode  = n.PostalCode,
                        TypeOwner = "использует",
                        Source    = "data_7361"
                                    //Organization = o
                    });
                }
                return(res);
            }))
            .ForMember(d => d.PersonPositions, opt => opt.MapFrom((src, o) =>
            {
                List <UNS.Models.Entities.PhoneItem> phones = new List <UNS.Models.Entities.PhoneItem>();
                foreach (var n in src.OrgInfo[0].ChiefPhone)
                {
                    foreach (var pp in n.ChiefPhone)
                    {
                        phones.Add(new UNS.Models.Entities.PhoneItem()
                        {
                            Phone = pp
                        });
                    }
                }
                var person    = new Person();
                var splitters = new List <string>();
                splitters.Add(" ");
                var words = src.ChiefName.Split(splitters.ToArray(), StringSplitOptions.None);
                switch (words.Length)
                {
                case 1:
                    person.Family = words[0];
                    break;

                case 2:
                    person.Name   = words[1];
                    person.Family = words[0];
                    break;

                case 3:
                    person.Name       = words[1];
                    person.Family     = words[0];
                    person.Patronymic = words[2];
                    break;
                }
                var positionType = (from pt in ContexUNS.PersonPositionTypes
                                    where pt.PositionType.ToLower() == src.ChiefPosition.ToLower()
                                    select pt).Single();
                if (positionType != null)
                {
                    positionType = new PersonPositionType()
                    {
                        PositionType = src.ChiefPosition
                    };
                    ContexUNS.PersonPositionTypes.Add(positionType);
                }
                List <DirectorPosition> directorPosition =
                    new List <DirectorPosition>()
                {
                    new DirectorPosition()
                    {
                        //Organization = o,
                        Person       = person,
                        Phones       = phones,
                        Director     = true,
                        PositionType = positionType
                    }
                };
                return(directorPosition);
            }));
        }
Beispiel #3
0
        public Data_Organization_5988_MapProfile() : base()
        {
            CreateMap <Data_Organization_5988, Organization>()
            .ForMember(s => s.Id, opt => opt.Ignore())
            .ForMember(s => s.UrAddress, opt =>
            {
                opt.PreCondition((source, destination, member) => destination.UrAddress == null);
                opt.MapFrom((source, destination) => source.LegalAddressEGRUL != null ? source.LegalAddressEGRUL : source.LegalAddressMGK);
            })
            .ForMember(s => s.OrganizationType, opt => opt.MapFrom((source, destination) =>
            {
                var findOrgType = Context.OrganizationTypes.Where(w =>
                                                                  w.FullTypeName.ToLower().Trim() == source.OrgType.ToLower().Trim()
                                                                  ||
                                                                  w.ShortTypeName.ToLower().Trim() == source.OrgType.ToLower().Trim()
                                                                  ).ToList();
                if (findOrgType.Any())
                {
                    return(findOrgType.FirstOrDefault());
                }
                else
                {
                    return(Context.OrganizationTypes.Add(new OrganizationType()
                    {
                        FullTypeName = source.OrgType
                    }));
                }
            }))
            .ForMember(s => s.PersonPositions, opt =>
                       opt.MapFrom((source, destination) =>
            {
                var personPositions = new List <PersonPosition>();
                foreach (var responsiblePerson in source.ResponsiblePersons)
                {
                    var person    = new Person();
                    var splitters = new List <string>();
                    splitters.Add(" ");
                    var words = responsiblePerson.FIO.Split(splitters.ToArray(), StringSplitOptions.None);
                    switch (words.Length)
                    {
                    case 1:
                        person.Family = words[0];
                        break;

                    case 2:
                        person.Name   = words[1];
                        person.Family = words[0];
                        break;

                    case 3:
                        person.Name       = words[1];
                        person.Family     = words[0];
                        person.Patronymic = words[2];
                        break;

                    default:
                        person.Name = responsiblePerson.FIO;
                        break;
                    }
                    var pptInBase = Context.PersonPositionTypes.Where(w => w.PositionType_Nominative.ToLower() == responsiblePerson.NamePosition.ToLower()).ToList();
                    PersonPositionType ppt;
                    if (pptInBase.Any())
                    {
                        ppt = pptInBase.FirstOrDefault();
                    }
                    else
                    {
                        ppt = new PersonPositionType()
                        {
                            PositionType = responsiblePerson.NamePosition
                        };
                        Context.PersonPositionTypes.Add(ppt);
                    }
                    personPositions.Add(new PersonPosition()
                    {
                        Person = person, PositionType = ppt
                    });
                }
                return(personPositions);
            }))
            .ForMember(s => s.OwnerRawAddresses, opt => opt.MapFrom((source, destination) =>
            {
                var ownerRawAddresses = new List <OwnerRawAddress>();
                ownerRawAddresses.Add(new OwnerRawAddress()
                {
                    DirtyAddress = source.LegalAddressEGRUL != null ? source.LegalAddressEGRUL : source.LegalAddressMGK,
                    Address      = source.LegalAddressEGRUL != null ? source.LegalAddressEGRUL : source.LegalAddressMGK,
                    Source       = source.GetType().Name,
                    TypeOwner    = "юрадрес"
                });
                foreach (var address in source.FactAddress)
                {
                    ownerRawAddresses.Add(new OwnerRawAddress()
                    {
                        DirtyAddress = address.FactAddress,
                        Address      = address.FactAddress,
                        Source       = source.GetType().Name,
                        TypeOwner    = "использует"
                    });
                }
                return(ownerRawAddresses);
            }))
            .ForAllMembers(options => options.PreCondition((source, destination, member) => member != null));
        }