/// <summary>
 /// Maps the person alerts message.
 /// </summary>
 /// <param name="dataReader">The data reader.</param>
 /// <returns>
 /// Dictionary of person id and Alert collection
 /// </returns>
 public static async Task<IDictionary<string, Collection<Message>>> MapMessagesDescription(SqlDataReader dataReader)
 {
     return await dataReader.ToDictionaryAsync<Message, Collection<Message>>(
         r => r.Int32Field(AlertId).ToString(CultureInfo.CurrentCulture),
         r => MapMessage(dataReader));
 }
 /// <summary>
 /// Maps the person messages.
 /// </summary>
 /// <param name="dataReader">The data reader.</param>
 /// <returns>Dictionary of personId and Messages</returns>
 public static async Task<IDictionary<string, PersonMessageCollection>> MapGuestMessages(SqlDataReader dataReader)
 {
     return await dataReader.ToDictionaryAsync<PersonMessage, PersonMessageCollection>(
      r => r.Int32Field(GuestId).ToString(CultureInfo.CurrentCulture),
      r => MapPersonMessage(dataReader));
 }
 /// <summary>
 /// Maps the guest alerts.
 /// </summary>
 /// <param name="dataReader">The data reader.</param>
 /// <returns>Dictionary of person id and Alert collection.</returns>
 public static async Task<IDictionary<string, AlertCollection>> MapGuestAlerts(SqlDataReader dataReader)
 {
     return await dataReader.ToDictionaryAsync<Alert, AlertCollection>(
        r => r.Int32Field(GuestId).ToString(CultureInfo.CurrentCulture),
        r => MapAlert(dataReader));
 }
 /// <summary>
 /// Maps the visitor access cards.
 /// </summary>
 /// <param name="dataReader">The data reader.</param>
 /// <returns>Dictionary of person id and access card collection.</returns>
 public static async Task<IDictionary<string, AccessCardCollection>> MapVisitorAccessCards(SqlDataReader dataReader)
 {
     return await dataReader.ToDictionaryAsync<AccessCard, AccessCardCollection>(
      r => r.Int32Field(VisitorId).ToString(CultureInfo.CurrentCulture),
      r => MapAccessCard(dataReader));
 }
 /// <summary>
 /// Maps the folios.
 /// </summary>
 /// <param name="dataReader">The data reader.</param>
 /// <returns></returns>
 private static async Task<IDictionary<string, FolioCollection>> RetrieveFolios(SqlDataReader dataReader)
 {
     return await dataReader.ToDictionaryAsync<Folio, FolioCollection>(
        r => r.Int32Field(GuestId).ToString(CultureInfo.CurrentCulture),
        r => MapFolio(dataReader));
 }
 /// <summary>
 /// Maps the dictionary asynchronous.
 /// </summary>
 /// <param name="dataReader">The data reader.</param>
 /// <returns>Dictionary of collection</returns>
 private static async Task<IDictionary<string, Collection<Itinerary>>> MapDictionaryAsync(SqlDataReader dataReader)
 {
     return await dataReader.ToDictionaryAsync<Itinerary, Collection<Itinerary>>(
         r => r.Int32Field(VoyageId).ToString(CultureInfo.CurrentCulture),
         r => MapVoyageItinerary(dataReader));
 }