public static List <TMember> ToDataStoreList <T, TMember>(this IContextDataObjectList <T> list) where T : IPrimary, IContextDataObject, new() { dynamic returnList = null; if (list.Count > 0) { Type itemType = list.FirstOrDefault().GetType(); if (itemType == typeof(MemberAddressData)) { List <MailingAddress> addressList = new List <MailingAddress>(); foreach (T address in list) { MemberAddressData addressItem = (MemberAddressData)(IMemberAddress)address; MailingAddress addressData = new MailingAddress { Id = GetGuidFromDataContextObject(addressItem), AddressLine1 = addressItem.AddressLine1, AddressLine2 = addressItem.AddressLine2, AddressLine3 = addressItem.AddressLine3, City = addressItem.City, County = addressItem.County, StateProvince = addressItem.StateProvince, PostalCode = addressItem.PostalCode, Country = addressItem.Country, PassedValidation = addressItem.PassedValidation, PassedValidationOn = addressItem.PassedValidationOn, Primary = addressItem.IsPrimary }; addressList.Add(addressData); } returnList = addressList; return(returnList); } else if (itemType == typeof(MemberPhoneData)) { List <PhoneNumber> phoneList = new List <PhoneNumber>(); foreach (T number in list) { MemberPhoneData phoneItem = (MemberPhoneData)(IMemberPhone)number; PhoneNumber phoneNumberData = new PhoneNumber { Id = GetGuidFromDataContextObject(phoneItem), Number = phoneItem.PhoneNumber, Type = phoneItem.PhoneType, PassedValidation = phoneItem.PassedValidation, PassedValidationOn = phoneItem.PassedValidationOn, Primary = phoneItem.IsPrimary }; phoneList.Add(phoneNumberData); } returnList = phoneList; return(returnList); } else if (itemType == typeof(MemberEmailData)) { List <EmailAddress> emailList = new List <EmailAddress>(); foreach (T email in list) { MemberEmailData emailItem = (MemberEmailData)(IMemberEmail)email; EmailAddress emailData = new EmailAddress { Id = GetGuidFromDataContextObject(emailItem), Address = emailItem.Address, PassedValidation = emailItem.PassedValidation, PassedValidationOn = emailItem.PassedValidationOn, Primary = emailItem.IsPrimary }; emailList.Add(emailData); } returnList = emailList; return(returnList); } } return(returnList); }
public static IPrimaryObjectList <TMember> ToFrameworkList <T, TMember>(this IList <T> list, Object memberId) where TMember : IPrimary, new() { dynamic returnList = null; if (list.Count > 0) { Type itemType = list.FirstOrDefault().GetType(); if (itemType == typeof(MailingAddress)) { MemberAddressList <MemberAddressData> addressList = new MemberAddressList <MemberAddressData>(); foreach (MailingAddress address in (IList <MailingAddress>)list) { MemberAddressData addressData = new MemberAddressData() { Id = address.Id, AddressLine1 = address.AddressLine1, AddressLine2 = address.AddressLine2, AddressLine3 = address.AddressLine3, City = address.City, County = address.County, StateProvince = address.StateProvince, PostalCode = address.PostalCode, Country = address.Country, MemberId = memberId, PassedValidation = address.PassedValidation, PassedValidationOn = address.PassedValidationOn }; addressList.Add(addressData); //if (address.Primary) //{ // addressList.SetPrimary(addressData); //} } returnList = addressList; return(returnList); } else if (itemType == typeof(PhoneNumber)) { MemberPhoneList <MemberPhoneData> phoneList = new MemberPhoneList <MemberPhoneData>(); foreach (PhoneNumber number in (IList <PhoneNumber>)list) { MemberPhoneData phoneNumberData = new MemberPhoneData { Id = number.Id, MemberId = memberId, PhoneNumber = number.Number, PhoneType = number.Type, PassedValidation = number.PassedValidation, PassedValidationOn = number.PassedValidationOn, IsPrimary = number.Primary }; phoneList.Add(phoneNumberData); } returnList = phoneList; return(returnList); } else if (itemType == typeof(EmailAddress)) { MemberEmailList <MemberEmailData> emailList = new MemberEmailList <MemberEmailData>(); foreach (EmailAddress email in (IList <EmailAddress>)list) { MemberEmailData emailData = new MemberEmailData() { Id = email.Id, MemberId = memberId, Address = email.Address, PassedValidation = email.PassedValidation, PassedValidationOn = email.PassedValidationOn, IsPrimary = email.Primary }; emailList.Add(emailData); } returnList = emailList; return(returnList); } else if (list.FirstOrDefault() is Institution) //Institutions are read only so we only need this to convert from our data-store to the framework model. { // Instittuion does not have its own list implementation. // Most type specific custom list declrations will be deprcated in the future. PrimaryObjectList <InstitutionData> institutionList = new PrimaryObjectList <InstitutionData>(); foreach (Institution institution in (IList <Institution>)list) { ASA.Web.WTF.MailingAddress addressData = null; if (institution.MailingAddress != null) { addressData = new ASA.Web.WTF.MailingAddress { AddressLine1 = institution.MailingAddress.AddressLine1, AddressLine2 = institution.MailingAddress.AddressLine2, AddressLine3 = institution.MailingAddress.AddressLine3, City = institution.MailingAddress.City, StateProvince = institution.MailingAddress.StateProvince, County = institution.MailingAddress.Country, Country = institution.MailingAddress.Country }; } InstitutionData institutionData = new InstitutionData() { Id = institution.Id, MemberId = memberId, ContactEmail = institution.ContactEmail, ExtData = new Dictionary <String, String> { { "Branch", institution.Branch }, { "OECode", institution.OECode } }, InstitutionType = InstitutionType.Other, // Temp IsPrimary = institution.IsPrimary, LogoPath = institution.LogoPath, MailingAddress = addressData, Name = institution.Name, PhoneNumber = institution.PhoneNumber, SiteUri = institution.SiteUri }; institutionList.Add(institutionData); } returnList = institutionList; return(returnList); } } return(returnList); }