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); })); }
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)); }