private async Task LoadCharacterHistory(CharacterData data, CharacterApi api) { List <GetCharactersCharacterIdCorporationhistory200Ok> items; try { int id = (int)data.Subject.Id; items = await api.GetCharactersCharacterIdCorporationhistoryAsync( characterId : id, datasource : ESIConfiguration.DataSource); } catch (Eve.Api.Client.ApiException e) { ExceptionHandler.HandleApiException(this, e); return; } HistoryItem[] history = new HistoryItem[items.Count]; HistoryItem last_item = null; for (int i = items.Count - 1; i >= 0; i--) { var item = items[i]; var hitem = history[i] = new HistoryItem(); hitem.Organization = new MailRecipient(EntityType.Corporation, item.CorporationId.GetValueOrDefault(-1)); await mClient.AddLookupAsync(hitem.Organization); hitem.Closed = item.IsDeleted.HasValue && item.IsDeleted.Value; hitem.HasStartDate = item.StartDate.HasValue; if (hitem.HasStartDate) { hitem.StartDate = item.StartDate.Value; } else { hitem.StartDateText = "(Unknown)"; } hitem.HasEndDate = false; hitem.EndDateText = "(Present)"; if (last_item != null) { last_item.HasEndDate = hitem.HasStartDate; last_item.EndDate = hitem.StartDate; last_item.EndDateText = hitem.StartDateText; } last_item = hitem; } data.History = history; data.HistoryLoaded = true; }