/// <summary> /// Maps the guest detail. /// </summary> /// <param name="person">The person.</param> /// <param name="guestPersonDetailList">The guest person detail list.</param> /// <param name="guestReservationDetailList">The guest reservation detail list.</param> /// <param name="guestAlerts">The guest alerts.</param> /// <param name="guestAlertMessages">The guest alert messages.</param> /// <param name="guestPersonMessages">The guest person messages.</param> /// <param name="guestMessages">The guest messages.</param> private static void MapGuestDetail(Person person, GuestCollection guestPersonDetailList, GuestCollection guestReservationDetailList, IDictionary<string, AlertCollection> guestAlerts, IDictionary<string, Collection<Message>> guestAlertMessages, IDictionary<string, PersonMessageCollection> guestPersonMessages, IDictionary<string, Collection<Message>> guestMessages, IDictionary<string, FolioCollection> folioList) { var debarkPersonalDetails = new DebarkPersonDetailCollection(); person.Guests.Iterate(a => { var guestReservationDetail = guestReservationDetailList.Where(b => a.GuestId.Equals(b.GuestId)).FirstOrDefault(); var guestPersonalDetail = guestPersonDetailList.Where(c => a.GuestId.Equals(c.GuestId)).FirstOrDefault(); if (guestReservationDetail != null) { a.CruiseDetail = guestReservationDetail.CruiseDetail; } if (guestPersonalDetail != null) { a.PersonalDetail = guestPersonalDetail.PersonalDetail; } var guestAlertCollection = guestAlerts.ContainsKey(a.GuestId) ? guestAlerts[a.GuestId] : null; guestAlertCollection.Iterate(b => b.Message = guestAlertMessages.ContainsKey(b.AlertId) ? guestAlertMessages[b.AlertId].FirstOrDefault() : null); if (guestAlertCollection != null) { a.AssignAlerts(guestAlertCollection); } var messageCollection = guestPersonMessages.ContainsKey(a.GuestId) ? guestPersonMessages[a.GuestId] : null; messageCollection.Iterate(b => b.Message = guestMessages.ContainsKey(b.AlertId) ? guestMessages[b.AlertId].FirstOrDefault() : null); if (messageCollection != null) { a.AssignMessages(messageCollection); } var folioCollection = folioList.ContainsKey(a.GuestId) ? folioList[a.GuestId] : null; if (folioCollection != null) { a.AssignFolios(folioCollection); } if (a.CruiseDetail.Stateroom != null) { var debarkPersonalDetail = new DebarkPersonDetail { Age = a.PersonalDetail.Age, PersonId = a.GuestId, PersonTypeId = CommonConstants.GuestTypeId, ReservationId = a.CruiseDetail.ReservationId, StateroomNumber = a.CruiseDetail.Stateroom }; debarkPersonalDetails.Add(debarkPersonalDetail); } }); MapDebarkAuthorizationDetails(person, debarkPersonalDetails); }
/// <summary> /// Maps the guest cruise details. /// </summary> /// <param name="guests">The guests.</param> /// <param name="personStatus">The person status.</param> /// <param name="shipId">The ship identifier.</param> /// <param name="personTypeId">The person type identifier.</param> /// <param name="guestReservationDetails">The guest reservation details.</param> /// <param name="staterooms">The staterooms.</param> /// <returns> /// Return nothing. /// </returns> internal async Task<ICollection<Guest>> MapGuestDetails(IEnumerable<Guest> guests, ListResult<PersonStatus> personStatus, string shipId, string personTypeId, IDictionary<string, DataAccess.Entities.GuestReservationDetail> guestReservationDetails, ListResult<DataAccess.Entities.Stateroom> staterooms) { var guestCollection = new Collection<Guest>(); var debarkPersonalDetails = new DebarkPersonDetailCollection(); var stateroomCategories = await DIContainer.Instance.Resolve<ShipClientRepository>().RetrieveStateroomCategoryListAsync(shipId); foreach (var guest in guests) { this.MapGuestCruiseDetails(staterooms, stateroomCategories, guest, guestReservationDetails, personStatus); if (guest.CruiseDetail.Stateroom != null) { var debarkPersonalDetail = new DebarkPersonDetail { Age = guest.PersonalDetail.Age, PersonId = guest.GuestId, PersonTypeId = personTypeId, ReservationId = guest.CruiseDetail.ReservationId, StateroomNumber = guest.CruiseDetail.Stateroom }; debarkPersonalDetails.Add(debarkPersonalDetail); } MapPersonStatus(personStatus, guest); guestCollection.Add(guest); } MapDebarkAuthorizationDetails(guestCollection, debarkPersonalDetails); return guestCollection; }