/// <summary> /// Function to map embarkation statistics. /// </summary> /// <param name="dataReader">Instance of SqlDataReader</param> /// <returns>Instance of EmbarkationStatistics</returns> internal static async Task<EmbarkationStatistics> MapEmbarkationStatistics(SqlDataReader dataReader) { var embarkationStatistics = new EmbarkationStatistics(); if (dataReader != null) { embarkationStatistics.CurrentBoardingNumber = await MapCurrentBoardingNumber(dataReader); await dataReader.NextResultAsync(); embarkationStatistics.CrewEmbarkation = await MapCrewEmbarkStatistics(dataReader); await dataReader.NextResultAsync(); embarkationStatistics.AssignCountryEmbarkStats(await MapCountryEmbarkStatistics(dataReader)); await dataReader.NextResultAsync(); embarkationStatistics.AssignBoardingEmbarkStats(await MapBoardingEmbarkStats(dataReader)); await dataReader.NextResultAsync(); embarkationStatistics.GuestEmbarkation = await MapGuestEmbarkStatistics(dataReader); await dataReader.NextResultAsync(); embarkationStatistics.VisitorEmbarkation = await MapVisitorEmbarkStatistics(dataReader); if (!dataReader.IsClosed) { dataReader.Close(); } } return await Task.FromResult(embarkationStatistics); }