Example #1
0
        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;
        }