/// <summary>
        /// retrieves ship info
        /// </summary>
        /// <param name="shipId">shipIds attribute</param>
        /// <param name="isFullInfo">if set to <c>true</c> [is full information].</param>
        /// <returns>
        /// returns ship info
        /// </returns>
        public async Task<ShipInfo> RetrieveShipInfo(string shipId, bool isFullInfo)
        {
            var shipInfo = new ShipInfo();
            var voyageCollection = await DIContainer.Instance.Resolve<VoyageClientRepository>().RetrieveVoyageListAsync(shipId);

            shipInfo.AssignVoyageCollection(voyageCollection.Items.Where(a => a.IsActive).ToList());
            if (isFullInfo)
            {
                var gangwayLocations = await this.referenceDataRepository.RetrieveGangwayLocationListAsync(shipId);
                shipInfo.AssignGangwayLocations(gangwayLocations);
                var stateroomCategories = await this.referenceDataRepository.RetrieveStateroomCategoryListAsync(shipId);
                shipInfo.AssignStateroomCategoryCollection(stateroomCategories.Items);
            }

            shipInfo.ShipId = shipId;
            return shipInfo;
        }