/// <summary> /// Maps the visitor personal detail. /// </summary> /// <param name="person">The person.</param> /// <param name="visitorPersonalDetailList">The visitor personal detail list.</param> /// <param name="visitorAlerts">The visitor alerts.</param> /// <param name="visitorAlertMessages">The visitor alert messages.</param> /// <param name="visitorPersonMessages">The visitor person messages.</param> /// <param name="visitorMessages">The visitor messages.</param> /// <param name="visitorAccessCards">The visitor access cards.</param> private static void MapVisitorDetail(Person person, VisitorCollection visitorPersonalDetailList, IDictionary<string, AlertCollection> visitorAlerts, IDictionary<string, Collection<Message>> visitorAlertMessages, IDictionary<string, PersonMessageCollection> visitorPersonMessages, IDictionary<string, Collection<Message>> visitorMessages, IDictionary<string, AccessCardCollection> visitorAccessCards) { person.Visitors.Iterate(a => { var visitorPersonalDetail = visitorPersonalDetailList.Where(b => a.VisitorId.Equals(b.VisitorId)).FirstOrDefault(); if (visitorPersonalDetail != null) { a.PersonalDetail = visitorPersonalDetail.PersonalDetail; a.VisitorInfo = visitorPersonalDetail.VisitorInfo; } var alertCollection = visitorAlerts.ContainsKey(a.VisitorId) ? visitorAlerts[a.VisitorId] : null; alertCollection.Iterate(b => b.Message = visitorAlertMessages.ContainsKey(b.AlertId) ? visitorAlertMessages[b.AlertId].FirstOrDefault() : null); if (alertCollection != null) { a.AssignAlerts(alertCollection); } var messageCollection = visitorPersonMessages.ContainsKey(a.VisitorId) ? visitorPersonMessages[a.VisitorId] : null; messageCollection.Iterate(b => b.Message = visitorMessages.ContainsKey(b.AlertId) ? visitorMessages[b.AlertId].FirstOrDefault() : null); if (messageCollection != null) { a.AssignMessages(messageCollection); } var accessCards = visitorAccessCards.ContainsKey(a.VisitorId) ? visitorAccessCards[a.VisitorId] : null; if (accessCards != null) { a.AssignVisitorAccessCard(accessCards); } }); }