public static OrganisationData ToOrganisationData(this IIfcOrganization ifcOrganization) { return(new OrganisationData { Name = ifcOrganization?.Name, Id = ifcOrganization?.Identification, Description = ifcOrganization?.Description, Addresses = ifcOrganization?.Addresses.Select(i => i.ToAddressData()).ToArray() }); }
public static string EmailAddressOf(IIfcActorSelect personOrg) { IIfcPerson person = null; IIfcOrganization organisation = null; if (personOrg is IIfcPerson) { person = personOrg as IIfcPerson; } if (personOrg is IIfcOrganization) { organisation = personOrg as IIfcOrganization; } if (personOrg is IIfcPersonAndOrganization) { person = (personOrg as IIfcPersonAndOrganization).ThePerson; organisation = (personOrg as IIfcPersonAndOrganization).TheOrganization; } string email; string phone; // not used // priority goes to person if (person != null) { GetTelecom(person.Addresses, out email, out phone); if (email != null) { return(email); } } if (organisation != null) { GetTelecom(organisation.Addresses, out email, out phone); if (email != null) { return(email); } } return(DefaultUniqueEmail(personOrg)); }
private void ConvertOrganisation(Contact target, IIfcOrganization ifcOrganization) { if (ifcOrganization.Addresses != null) { var telecom = ifcOrganization.Addresses.OfType <IIfcTelecomAddress>().FirstOrDefault(a => a.ElectronicMailAddresses.Any(e => !string.IsNullOrWhiteSpace(e))); var postal = ifcOrganization.Addresses.OfType <IIfcPostalAddress>().FirstOrDefault(); if (telecom != null) { target.Email = telecom.ElectronicMailAddresses.FirstOrDefault(); target.Phone = telecom.TelephoneNumbers.FirstOrDefault(); } if (postal != null) { target.Department = postal.InternalLocation; target.Street = postal.AddressLines != null?postal.AddressLines.ToString() : null; target.PostalBox = postal.PostalBox; target.Town = postal.Town; target.StateRegion = postal.Region; target.PostalCode = postal.PostalCode; } } if (ifcOrganization.Roles != null) { var roles = ifcOrganization.Roles; if (roles.Any()) { target.Categories = new List <Category>(roles.Count()); foreach (var role in roles) { target.Categories.Add(new Category { Classification = "Role", Code = role.Role.ToString(), Description = role.Description }); } } } target.Company = ifcOrganization.Name; }
private void ConvertOrganisation(CobieContact target, IIfcOrganization ifcOrganization) { if (ifcOrganization.Addresses != null) { var telecom = ifcOrganization.Addresses.OfType <IIfcTelecomAddress>().FirstOrDefault(a => a.ElectronicMailAddresses.Any(e => !string.IsNullOrWhiteSpace(e))); var postal = ifcOrganization.Addresses.OfType <IIfcPostalAddress>().FirstOrDefault(); if (telecom != null) { target.Email = telecom.ElectronicMailAddresses.FirstOrDefault(); target.Phone = telecom.TelephoneNumbers.FirstOrDefault(); } if (postal != null) { target.Department = postal.InternalLocation; target.Street = postal.AddressLines != null && postal.AddressLines.Any()? string.Join(", ", postal.AddressLines) : null; target.PostalBox = postal.PostalBox; target.Town = postal.Town; target.StateRegion = postal.Region; target.PostalCode = postal.PostalCode; } } if (ifcOrganization.Roles != null) { var role = ifcOrganization.Roles.FirstOrDefault(); if (role != null) { var cls = role.Role.ToString(); target.Category = Exchanger.TargetRepository.Instances.New <CobieRole>(r => r.Value = cls); } } if (string.IsNullOrWhiteSpace(target.Email)) { target.Email = string.Format("unknown{0}@undefined.email", ifcOrganization.EntityLabel); } target.Company = ifcOrganization.Name; }
/// <summary> /// Get email address from IfcPerson /// </summary> /// <param name="ifcOrganization"></param> /// <param name="ifcPerson"></param> /// <returns></returns> public static string GetEmail(IIfcOrganization ifcOrganization, IIfcPerson ifcPerson) { var email = ""; var emails = Enumerable.Empty <IfcLabel>(); if ((ifcPerson != null) && (ifcPerson.Addresses != null)) { emails = ifcPerson .Addresses.OfType <IfcTelecomAddress>() .Select(address => address.ElectronicMailAddresses) .Where(item => item != null).SelectMany(em => em) .Where(em => !string.IsNullOrEmpty(em)) .ToList(); } if (!emails.Any()) { if ((ifcOrganization != null) && (ifcOrganization.Addresses != null)) { emails = ifcOrganization.Addresses.OfType <IfcTelecomAddress>().Select(address => address.ElectronicMailAddresses).Where(item => item != null).SelectMany(em => em).Where(em => !string.IsNullOrEmpty(em)); } } //if still no email lets make one up if (emails.Any()) { email = string.Join(" : ", emails); } else { var first = ""; var lastName = ""; var organization = ""; if (ifcPerson != null) { first = ifcPerson.GivenName.ToString(); lastName = ifcPerson.FamilyName.ToString(); } if (ifcOrganization != null) { organization = ifcOrganization.Name.ToString(); } var domType = ""; if (!string.IsNullOrEmpty(first)) { var split = first.Split('.'); if (split.Length > 1) { first = split[0]; //assume first } } if (!string.IsNullOrEmpty(lastName)) { var split = lastName.Split('.'); if (split.Length > 1) { lastName = split.Last(); //assume last } } if (!string.IsNullOrEmpty(organization)) { var split = organization.Split('.'); var index = 1; foreach (var item in split) { if (index == 1) { organization = item; //first item always } else if (index < split.Length) //all the way up to the last item { organization += "." + item; } else { domType = "." + item; //last item assume domain type } index++; } } email += (string.IsNullOrEmpty(first)) ? "unknown" : first; email += "."; email += (string.IsNullOrEmpty(lastName)) ? "unknown" : lastName; email += "@"; email += (string.IsNullOrEmpty(organization)) ? "unknown" : organization; email += (string.IsNullOrEmpty(domType)) ? ".com" : domType; email = email.Replace(" ", ""); //remove any spaces } return(email); }
private void ConvertOrganisation(IIfcOrganization ifcOrganization, CoBieLiteHelper helper) { if (ifcOrganization.Addresses != null) { var telecom = ifcOrganization.Addresses.OfType <IIfcTelecomAddress>(); var postal = ifcOrganization.Addresses.OfType <IIfcPostalAddress>(); var ifcTelecomAddresses = telecom as IIfcTelecomAddress[] ?? telecom.ToArray(); if (ifcTelecomAddresses.Any()) { var emailAddresses = string.Join(";", ifcTelecomAddresses.SelectMany(t => t.ElectronicMailAddresses)); if (!string.IsNullOrWhiteSpace(emailAddresses)) { ContactEmail = emailAddresses; } var phoneNums = string.Join(";", ifcTelecomAddresses.SelectMany(t => t.TelephoneNumbers)); if (!string.IsNullOrWhiteSpace(phoneNums)) { ContactPhoneNumber = phoneNums; } var url = string.Join(";", ifcTelecomAddresses.Where(p => p.WWWHomePageURL.HasValue).SelectMany(p => p.WWWHomePageURL.ToString())); if (!string.IsNullOrWhiteSpace(url)) { ContactURL = url; } } var ifcPostalAddresses = postal as IIfcPostalAddress[] ?? postal.ToArray(); if (ifcPostalAddresses.Any()) { var deptNames = string.Join(";", ifcPostalAddresses.Where(p => p.InternalLocation.HasValue).SelectMany(p => p.InternalLocation.ToString())); if (!string.IsNullOrWhiteSpace(deptNames)) { ContactDepartmentName = deptNames; } var streetNames = string.Join(";", ifcPostalAddresses.Where(p => p.AddressLines != null).SelectMany(p => p.AddressLines.ToString())); if (!string.IsNullOrWhiteSpace(streetNames)) { ContactStreet = streetNames; } var postalBox = string.Join(";", ifcPostalAddresses.Where(p => p.PostalBox.HasValue).SelectMany(p => p.PostalBox.ToString())); if (!string.IsNullOrWhiteSpace(postalBox)) { ContactPostalBoxNumber = postalBox; } var town = string.Join(";", ifcPostalAddresses.Where(p => p.Town.HasValue).SelectMany(p => p.Town.ToString())); if (!string.IsNullOrWhiteSpace(town)) { ContactTownName = town; } var region = string.Join(";", ifcPostalAddresses.Where(p => p.Region.HasValue).SelectMany(p => p.Region.ToString())); if (!string.IsNullOrWhiteSpace(region)) { ContactRegionCode = region; } var postalCode = string.Join(";", ifcPostalAddresses.Where(p => p.PostalCode.HasValue).SelectMany(p => p.PostalCode.ToString())); if (!string.IsNullOrWhiteSpace(postalCode)) { ContactPostalCode = postalCode; } } } if (ifcOrganization.Roles != null) { var roles = string.Join(";", ifcOrganization.Roles.Select(r => r.RoleString)); //deals with User defined roles if (!string.IsNullOrWhiteSpace(roles)) { ContactCategory = roles; } } ContactCompanyName = ifcOrganization.Name; }
private void ConvertOrganisation(IIfcOrganization ifcOrganization, CoBieLiteUkHelper helper) { if (ifcOrganization.Addresses != null) { var telecom = ifcOrganization.Addresses.OfType <IIfcTelecomAddress>(); var postal = ifcOrganization.Addresses.OfType <IIfcPostalAddress>(); var ifcTelecomAddresses = telecom.ToArray(); if (ifcTelecomAddresses.Any()) { var emailAddresses = string.Join(";", ifcTelecomAddresses.SelectMany(t => t.ElectronicMailAddresses)); if (!string.IsNullOrWhiteSpace(emailAddresses)) { Email = emailAddresses; } var phoneNums = string.Join(";", ifcTelecomAddresses.SelectMany(t => t.TelephoneNumbers)); if (!string.IsNullOrWhiteSpace(phoneNums)) { Phone = phoneNums; } //var url = string.Join(";", ifcTelecomAddresses.Where(p => p.WWWHomePageURL.HasValue).SelectMany(p => p.WWWHomePageURL.ToString())); //if (!string.IsNullOrWhiteSpace(url)) // URL= url; } var ifcPostalAddresses = postal.ToArray(); if (ifcPostalAddresses.Any()) { var deptNames = string.Join(";", ifcPostalAddresses.Where(p => p.InternalLocation.HasValue).SelectMany(p => p.InternalLocation.ToString())); if (!string.IsNullOrWhiteSpace(deptNames)) { Department = deptNames; } var streetNames = string.Join(";", ifcPostalAddresses.Where(p => p.AddressLines != null).SelectMany(p => p.AddressLines.ToString())); if (!string.IsNullOrWhiteSpace(streetNames)) { Street = streetNames; } var postalBox = string.Join(";", ifcPostalAddresses.Where(p => p.PostalBox.HasValue).SelectMany(p => p.PostalBox.ToString())); if (!string.IsNullOrWhiteSpace(postalBox)) { PostalBox = postalBox; } var town = string.Join(";", ifcPostalAddresses.Where(p => p.Town.HasValue).SelectMany(p => p.Town.ToString())); if (!string.IsNullOrWhiteSpace(town)) { Town = town; } var region = string.Join(";", ifcPostalAddresses.Where(p => p.Region.HasValue).SelectMany(p => p.Region.ToString())); if (!string.IsNullOrWhiteSpace(region)) { StateRegion = region; } var postalCode = string.Join(";", ifcPostalAddresses.Where(p => p.PostalCode.HasValue).SelectMany(p => p.PostalCode.ToString())); if (!string.IsNullOrWhiteSpace(postalCode)) { PostalCode = postalCode; } } } if (ifcOrganization.Roles != null) { var roles = ifcOrganization.Roles; if (roles.Any()) { Categories = new List <Category>(roles.Count()); foreach (var role in roles) { Categories.Add(new Category { Classification = "Role", Code = role.Role.ToString(), Description = role.Description }); } } } Company = ifcOrganization.Name; }
internal static void ConvertOrganisation(Contact target, IIfcOrganization ifcOrganization) { // specific fields (different from ifcperson) target.Company = ifcOrganization.Name; // ========================= postal address // string department; string street; string postalBox; string town; string stateRegion; string postalCode; var c = ContactFunctions.GetPostal(ifcOrganization.Addresses, out department, out street, out postalBox, out town, out stateRegion, out postalCode ); if (c > 0) { if (department != null) { target.Department = department; } if (street != null) { target.Street = street; } if (postalBox != null) { target.PostalBox = postalBox; } if (town != null) { target.Town = town; } if (stateRegion != null) { target.StateRegion = stateRegion; } if (postalCode != null) { target.PostalCode = postalCode; } } // ========================= telecom address // string email; string phone; var c2 = ContactFunctions.GetTelecom(ifcOrganization.Addresses, out email, out phone ); if (c2 > 0) { if (email != null) { target.Email = email; } if (phone != null) { target.Phone = phone; } } // ========================= roles are used for classification // if (ifcOrganization.Roles == null) { return; } var roles = ifcOrganization.Roles; if (!roles.Any()) { return; } if (target.Categories == null) { target.Categories = new List <Category>(roles.Count()); } foreach (var role in roles) { target.Categories.Add(new Category { Classification = "Role", Code = role.Role.ToString(), Description = role.Description }); } }