/// <summary> /// Retrieves the person event asynchronous. /// </summary> /// <param name="dateTime">The date time.</param> /// <param name="personId">The person identifier.</param> /// <param name="personType">The person type.</param> /// <returns>The person events.</returns> public async Task<EventHistory> RetrievePersonHistoryAsync(string dateTime, string personId, PersonType personType) { var workstation = DIContainer.Instance.Resolve<Workstation>(); ListResult<EventHistory> eventData = new ListResult<EventHistory>(); var eventHistory = new EventHistory(); var personTypeId = personType.RetrievePersonTypeId(); var command = this.Database.GetStoredProcCommand(RetrieveGangwayHistoryByPersonIdStoredProcedure) .AddParameter(PersonTypeId, DbType.Int16, personTypeId) .AddParameter(PersonIds, DbType.String, personId) .AddParameter(ShipIds, DbType.String, workstation.Ship.ShipId) .AddParameter(SortColumn1, DbType.String, AddedDate) .AddParameter(SortTypeColumn1, DbType.String, DESC) .AddParameter(PageNumber, DbType.Int32, OfflineConstants.DefaultPageNumber) .AddParameter(PageSize, DbType.Int32, OfflineConstants.DefaultPageSize); var list = await this.ExecuteReaderAsync(command, GangwayHistoryMapper.MapGangwayHistory); eventHistory.AssignGangwayEvents(PersonEventHistoryMapper.MapPersonHistory(list.Items)); eventData.Items.Add(eventHistory); var data = eventData != null ? eventData.Items.FirstOrDefault() : new EventHistory(); return await Task.FromResult(data); }
/// <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; }