/// <summary>
        /// Persons the event list asynchronous.
        /// </summary>
        /// <param name="personId">The person identifier.</param>
        /// <param name="searchParameters">The search parameters.</param>
        /// <returns>
        /// Instance of Event History
        /// </returns>
        public async Task<ListResult<EventHistory>> PersonEventListAsync(string personId, PersonEventSearchParameter searchParameters)
        {
            var eventHistoryCollection = new ListResult<EventHistory>();
            var eventHistory = new EventHistory();

            ////TODO : Implement Date time value to pass to mas service to retrieve drill events.
            DateTime dateTime;
            try
            {
                DateTime.TryParseExact(searchParameters.DateTime, CustomDateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime);
            }
            catch
            {
                dateTime = DateTime.UtcNow;
            }

            //// TODO : Will remove later after 2015-11-23 Release.
            if (dateTime.Equals(DateTime.MinValue))
            {
                dateTime = DateTime.UtcNow;
            }

            var drillEvents = RetrieveDrillEvents(dateTime, personId, searchParameters.PersonType.ToString(CultureInfo.CurrentCulture));
            var gangwayEvents = this.personEventClientRepository.RetrieveEventListAsync(new PersonHistorySearchParameters { ShipId = searchParameters.ShipId, PersonIds = searchParameters.PersonId, PersonTypeId = searchParameters.PersonTypeId, MaxResults = searchParameters.MaxResults, OrderBy = searchParameters.OrderBy, PageNumber = searchParameters.PageNumber, Parts = searchParameters.Parts });

            await Task.WhenAll(drillEvents, gangwayEvents);

            eventHistory.AssignGangwayEvents(PersonEventHistoryMapper.MapListAsync(gangwayEvents.Result.Items));
            eventHistory.AssignDrillEvents(drillEvents.Result);
            eventHistoryCollection.Items.Add(eventHistory);
            eventHistoryCollection.TotalResults = gangwayEvents.Result.TotalResults;
            return eventHistoryCollection;
        }