/// <summary> /// iterates throught the collection of members and sets them up for display to the end user. /// </summary> /// <param name="members"></param> /// <returns></returns> public static List<MemberDisplay> IterateMembersForDisplay(ICollection<DataModels.League.LeagueMember> members) { List<MemberDisplay> membersReturned = new List<MemberDisplay>(); foreach (var mem in members) { try { MemberDisplay memTemp = new MemberDisplay(); memTemp.IsProfileRemovedFromPublicView = mem.Member.IsProfileRemovedFromPublic; memTemp.DerbyName = mem.Member.DerbyName; memTemp.StartedSkating = mem.Member.YearStartedSkating; memTemp.DOB = mem.Member.DateOfBirth.GetValueOrDefault(); if (mem.Member.ContactCard.Emails.Count > 0) memTemp.Email = mem.Member.ContactCard.Emails.Where(x => x.IsDefault == true).FirstOrDefault().EmailAddress; memTemp.Firstname = mem.Member.Firstname; GenderEnum gen; if (Enum.TryParse<GenderEnum>(mem.Member.Gender.ToString(), out gen)) memTemp.Gender = gen; memTemp.LastName = mem.Member.Lastname; memTemp.MemberId = mem.Member.MemberId; memTemp.PlayerNumber = mem.Member.PlayerNumber; memTemp.DayJob = mem.Member.DayJob; if (mem.Member.ContactCard != null && mem.Member.ContactCard.Communications.Count > 0) { var com = mem.Member.ContactCard.Communications.Where(x => x.IsDefault == true).Where(x => x.CommunicationTypeEnum == (byte)CommunicationTypeEnum.PhoneNumber).FirstOrDefault(); if (com != null) { memTemp.PhoneNumber = com.Data; memTemp.SMSVerificationNum = com.SMSVerificationCode; memTemp.Carrier = (MobileServiceProvider)com.CarrierType; memTemp.IsCarrierVerified = com.IsCarrierVerified; } } if (mem.Member.ContactCard != null && mem.Member.ContactCard.Addresses.Count > 0) { foreach (var add in mem.Member.ContactCard.Addresses) { var address =new RDN.Portable.Classes.ContactCard.Address(); address.AddressId = add.AddressId; address.Address1 = add.Address1; address.Address2 = add.Address2; address.CityRaw = add.CityRaw; if (add.Country != null) address.Country = add.Country.Code; address.StateRaw = add.StateRaw; address.Zip = add.Zip; if (add.Coords != null) { address.Coords = new Portable.Classes.Location.GeoCoordinate(); address.Coords.Latitude = add.Coords.Latitude; address.Coords.Longitude = add.Coords.Longitude; } memTemp.ContactCard.Addresses.Add(address); } } if (mem.League != null) { RDN.Portable.Classes.League.Classes.League l = new RDN.Portable.Classes.League.Classes.League(); l.LeagueId = mem.League.LeagueId; l.Name = mem.League.Name; l.DepartureDate = mem.DepartureDate; l.SkillsTestDate = mem.SkillsTestDate; if (mem.Member.CurrentLeagueId == l.LeagueId) { memTemp.IsInactiveFromCurrentLeague = mem.IsInactiveForLeague; if (mem.SkaterClass != null) memTemp.LeagueClassificationOfSkatingLevel = mem.SkaterClass.ClassName; } l.LeagueOwnersEnum = (LeagueOwnersEnum)mem.LeagueOwnersEnums; if (mem.Member.CurrentLeagueId == l.LeagueId) memTemp.LeagueOwnersEnum = l.LeagueOwnersEnum; l.IsInactiveInLeague = mem.IsInactiveForLeague; if (mem.SkaterClass != null) { l.SkaterClass = mem.SkaterClass.ClassId; //l.SkaterLevel = mem.SkaterClass.ClassName; } memTemp.Leagues.Add(l); } if (mem.Member.AspNetUserId != null && mem.Member.AspNetUserId != new Guid()) { memTemp.UserId = mem.Member.AspNetUserId; memTemp.IsConnected = true; } else { memTemp.IsConnected = false; memTemp.VerificationCode = mem.Member.MemberId.ToString().Replace("-", "") + mem.Member.Gender.ToString(); } foreach (var photo in mem.Member.Photos.OrderBy(x => x.Created)) { memTemp.Photos.Add(new PhotoItem(photo.ImageUrl, photo.ImageUrlThumb, photo.IsPrimaryPhoto, mem.Member.DerbyName)); } foreach (var numb in mem.Member.InsuranceNumbers) { if (numb.InsuranceType == Convert.ToInt32(InsuranceProviderEnum.Other)) { memTemp.InsuranceNumOther = numb.InsuranceNumber; memTemp.InsuranceNumOtherExpires = numb.Expires; } else if (numb.InsuranceType == Convert.ToInt32(InsuranceProviderEnum.USARS)) { memTemp.InsuranceNumUsars = numb.InsuranceNumber; memTemp.InsuranceNumUsarsExpires = numb.Expires; } else if (numb.InsuranceType == Convert.ToInt32(InsuranceProviderEnum.WFTDA)) { memTemp.InsuranceNumWftda = numb.InsuranceNumber; memTemp.InsuranceNumWftdaExpires = numb.Expires; } else if (numb.InsuranceType == Convert.ToInt32(InsuranceProviderEnum.CRDI)) { memTemp.InsuranceNumCRDI = numb.InsuranceNumber; memTemp.InsuranceNumCRDIExpires = numb.Expires; } } MedicalInformationFactory.AttachMemberMedicalInformation(mem.Member, memTemp); memTemp.Settings = MemberSettingsFactory.DisplayMemberSettings(mem.Member.Settings); membersReturned.Add(memTemp); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } } return membersReturned; }
public static List<RDN.Portable.Classes.Location.Location> GetLocationsOfCalendar(Guid calendarId) { List<RDN.Portable.Classes.Location.Location> newLocations = new List<Portable.Classes.Location.Location>(); try { var dc = new ManagementContext(); var locations = (from xx in dc.Calendar where xx.CalendarId == calendarId select new { xx.CalendarEvents, xx.Locations }).FirstOrDefault(); foreach (var loc in locations.Locations.Where(x => x.IsRemoved == false)) { try { RDN.Portable.Classes.Location.Location l = new Portable.Classes.Location.Location(); l.LocationName = loc.LocationName; l.LocationId = loc.LocationId; if (loc.Contact != null && loc.Contact.Addresses.FirstOrDefault() != null) { var add = loc.Contact.Addresses.FirstOrDefault(); RDN.Portable.Classes.ContactCard.Address a = new RDN.Portable.Classes.ContactCard.Address(); a.Address1 = add.Address1; a.Address2 = add.Address2; a.AddressId = add.AddressId; a.CityRaw = add.CityRaw; if (add.Country != null) a.Country = add.Country.Code; a.IsDefault = add.IsDefault; a.StateRaw = add.StateRaw; a.Zip = add.Zip; l.Contact.Addresses.Add(a); } if (newLocations.Where(x => x.LocationId == l.LocationId).FirstOrDefault() == null) newLocations.Add(l); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } } foreach (var loc in locations.CalendarEvents) { try { if (loc.Location != null) { RDN.Portable.Classes.Location.Location l = new Portable.Classes.Location.Location(); l.LocationName = loc.Location.LocationName; l.LocationId = loc.Location.LocationId; if (loc.Location.Contact != null && loc.Location.Contact.Addresses.FirstOrDefault() != null) { var add = loc.Location.Contact.Addresses.FirstOrDefault(); RDN.Portable.Classes.ContactCard.Address a = new RDN.Portable.Classes.ContactCard.Address(); a.Address1 = add.Address1; a.Address2 = add.Address2; a.AddressId = add.AddressId; a.CityRaw = add.CityRaw; if (add.Country != null) a.Country = add.Country.Code; a.IsDefault = add.IsDefault; a.StateRaw = add.StateRaw; a.Zip = add.Zip; l.Contact.Addresses.Add(a); } if (newLocations.Where(x => x.LocationId == l.LocationId).FirstOrDefault() == null) newLocations.Add(l); } } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } } } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return newLocations; }
public static RDN.Portable.Classes.Location.Location DisplayLocation(DataModels.Location.Location loc) { RDN.Portable.Classes.Location.Location l = new RDN.Portable.Classes.Location.Location(); try { if (loc != null) { l.LocationName = loc.LocationName; l.LocationId = loc.LocationId; if (loc.Contact != null && loc.Contact.Addresses.FirstOrDefault() != null) { var add = loc.Contact.Addresses.FirstOrDefault(); RDN.Portable.Classes.ContactCard.Address a = new RDN.Portable.Classes.ContactCard.Address(); a.Address1 = add.Address1; a.Address2 = add.Address2; a.AddressId = add.AddressId; a.CityRaw = add.CityRaw; if (add.Country != null) a.Country = add.Country.Code; a.IsDefault = add.IsDefault; a.StateRaw = add.StateRaw; a.Zip = add.Zip; l.Contact.Addresses.Add(a); } } } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return l; }
/// <summary> /// builds up the member object to display out to the world. /// </summary> /// <param name="memberId"></param> /// <returns></returns> public static MemberDisplay GetMemberDisplay(Guid memberId, bool isPublicProfile = false, bool pullGameData = true) { try { var dc = new ManagementContext(); var member = dc.Members.Include("Notifications").Include("Settings").Include("Leagues").Include("Leagues.SkaterClass").Include("InsuranceNumbers").Include("ContactCard").Include("ContactCard.Emails").Include("ContactCard.Communications").Include("Photos").Include("Federations").Include("MedicalInformation").FirstOrDefault(x => x.MemberId.Equals(memberId)); if (member == null) return null; MemberDisplay mem = new MemberDisplay(); mem.IsProfileRemovedFromPublicView = member.IsProfileRemovedFromPublic; if (member.IsProfileRemovedFromPublic && isPublicProfile) return null; foreach (var photo in member.Photos.OrderBy(x => x.Created)) { mem.Photos.Add(new PhotoItem(photo.ImageUrl, photo.IsPrimaryPhoto, member.DerbyName)); } if (member.YearStartedSkating != null && member.YearStartedSkating != new DateTime()) mem.StartedSkating = member.YearStartedSkating.Value; else mem.StartedSkating = null; if (member.YearStoppedSkating != null && member.YearStoppedSkating != new DateTime()) mem.StoppedSkating = member.YearStoppedSkating.Value; else mem.StoppedSkating = null; mem.CurrentLeagueId = member.CurrentLeagueId; mem.IsRetired = member.Retired; mem.Firstname = member.Firstname; mem.DerbyName = member.DerbyName; mem.DerbyNameUrl = ServerConfig.WEBSITE_DEFAULT_LOCATION + "/roller-derby-skater/" + RDN.Utilities.Strings.StringExt.ToSearchEngineFriendly(member.DerbyName) + "/" + member.MemberId.ToString().Replace("-", ""); mem.MemberId = memberId; mem.UserId = member.AspNetUserId; mem.DayJob = member.DayJob; var user = Membership.GetUser((object)member.AspNetUserId); if (user != null) mem.UserName = user.UserName; mem.IsNotConnectedToDerby = member.IsNotConnectedToDerby; mem.Email = ExtractEmailFromContactCard(member); if (member.ContactCard.Addresses.Count > 0) { foreach (var add in member.ContactCard.Addresses) { var address = new RDN.Portable.Classes.ContactCard.Address(); address.AddressId = add.AddressId; address.Address1 = add.Address1; address.Address2 = add.Address2; address.CityRaw = add.CityRaw; if (add.Country != null) address.Country = add.Country.Code; address.StateRaw = add.StateRaw; address.Zip = add.Zip; address.Type = (AddressTypeEnum)add.AddressType; mem.ContactCard.Addresses.Add(address); } } GenderEnum gen; if (Enum.TryParse<GenderEnum>(member.Gender.ToString(), out gen)) mem.Gender = gen; mem.LastName = member.Lastname; mem.Bio = member.Bio; mem.DefaultPositionType = (DefaultPositionEnum)Enum.Parse(typeof(DefaultPositionEnum), member.PositionType.ToString()); mem.BioHtml = member.Bio; if (member.DateOfBirth.HasValue) mem.DOB = member.DateOfBirth.Value; mem.WeightLbs = member.WeightInLbs; if (member.HeightInches != 0) { mem.HeightFeet = (int)(member.HeightInches / 12); mem.HeightInches = (int)(member.HeightInches % 12); } DisplayInsuranceNumbers(member.InsuranceNumbers, mem); DisplayMemberNotifications(member.Notifications, mem); mem.Settings = MemberSettingsFactory.DisplayMemberSettings(member.Settings); foreach (var memberContact in member.MemberContacts) { try { RDN.Portable.Classes.Account.Classes.MemberContact contact = new RDN.Portable.Classes.Account.Classes.MemberContact(); contact.ContactId = memberContact.ContactId; contact.Firstname = memberContact.Firstname; contact.Lastname = memberContact.Lastname; contact.ContactType = (MemberContactTypeEnum)Enum.Parse(typeof(MemberContactTypeEnum), memberContact.ContactTypeEnum.ToString()); if (memberContact.ContactCard != null) { if (memberContact.ContactCard.Emails.Count > 0) contact.Email = memberContact.ContactCard.Emails.Where(x => x.IsDefault == true).FirstOrDefault().EmailAddress; if (memberContact.ContactCard.Communications.Count > 0) { contact.PhoneNumber = memberContact.ContactCard.Communications.FirstOrDefault().Data; contact.SMSVerificationNum = memberContact.ContactCard.Communications.FirstOrDefault().SMSVerificationCode; contact.Carrier = (MobileServiceProvider)memberContact.ContactCard.Communications.FirstOrDefault().CarrierType; } if (memberContact.ContactCard.Addresses.Count > 0) { contact.Addresses = new List<Portable.Classes.ContactCard.Address>(); foreach (var add in memberContact.ContactCard.Addresses) { var address = new RDN.Portable.Classes.ContactCard.Address(); address.Address1 = add.Address1; address.Address2 = add.Address2; address.CityRaw = add.CityRaw; if (add.Country != null) address.Country = add.Country.Code; address.StateRaw = add.StateRaw; address.Zip = add.Zip; address.Type = (AddressTypeEnum)add.AddressType; contact.Addresses.Add(address); } } } mem.MemberContacts.Add(contact); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } } if (member.ContactCard.Communications.Count > 0) { var com = member.ContactCard.Communications.Where(x => x.IsDefault == true).Where(x => x.CommunicationTypeEnum == (byte)CommunicationTypeEnum.PhoneNumber).FirstOrDefault(); if (com != null) { mem.PhoneNumber = com.Data; mem.SMSVerificationNum = com.SMSVerificationCode; mem.Carrier = (MobileServiceProvider)com.CarrierType; mem.IsCarrierVerified = com.IsCarrierVerified; } } mem.PlayerNumber = member.PlayerNumber; if (member.Leagues.Count > 0) { foreach (var league in member.Leagues) { RDN.Portable.Classes.League.Classes.League l = new Portable.Classes.League.Classes.League(); l.LeagueId = league.League.LeagueId; l.Name = league.League.Name; l.IsInactiveInLeague = league.IsInactiveForLeague; l.DepartureDate = league.DepartureDate; l.MembershipDate = league.MembershipDate; l.SkillsTestDate = league.SkillsTestDate; l.HasLeftLeague = league.HasLeftLeague; l.NotesAboutMember = league.Notes; l.NameUrl = ServerConfig.WEBSITE_DEFAULT_LOCATION_FOR_LEAGUES + RDN.Utilities.Strings.StringExt.ToSearchEngineFriendly(l.Name) + "/" + l.LeagueId.ToString().Replace("-", ""); l.LeagueOwnersEnum = (LeagueOwnersEnum)league.LeagueOwnersEnums; if (l.LeagueId == mem.CurrentLeagueId) { mem.LeagueOwnersEnum = l.LeagueOwnersEnum; mem.DoesReceiveLeagueNotifications = !league.TurnOffEmailNotifications; } if (league.SkaterClass != null) l.SkaterClass = league.SkaterClass.ClassId; else l.SkaterClass = 0; mem.Leagues.Add(l); } } MedicalInformationFactory.AttachMemberMedicalInformation(member, mem); foreach (var fed in member.Federations) { FederationDisplay fedDisplay = new FederationDisplay(); fedDisplay.FederationId = fed.Federation.FederationId; fedDisplay.FederationName = fed.Federation.Name; fedDisplay.MADEClassRank = ((MADEClassRankEnum)Enum.ToObject(typeof(MADEClassRankEnum), fed.MADEClassRankForMember)).ToString(); fedDisplay.MemberType = ((MemberTypeFederationEnum)Enum.ToObject(typeof(MemberTypeFederationEnum), fed.MemberType)).ToString(); var ownersOfFed = fed.Federation.Owners.Where(x => x.Member == member).FirstOrDefault(); if (ownersOfFed == null) fedDisplay.OwnerType = FederationOwnerEnum.None.ToString(); else fedDisplay.OwnerType = ((FederationOwnerEnum)Enum.ToObject(typeof(FederationOwnerEnum), ownersOfFed.OwnerType)).ToString(); if (fed.MembershipDate != null && fed.MembershipDate != new DateTime()) fedDisplay.MembershipDate = fed.MembershipDate.Value; else fedDisplay.MembershipDate = DateTime.UtcNow; fedDisplay.MembershipId = fed.FederationIdForMember; mem.FederationsApartOf.Add(fedDisplay); } if (pullGameData) GetGameStats(memberId, dc, mem); return mem; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return null; }