示例#1
0
        private async Task LoadCharacterInfo(CharacterData data, CharacterApi api)
        {
            GetCharactersCharacterIdOk info;

            try
            {
                await LoadRacesAndBloodlines();

                int id = (int)data.Subject.Id;
                info = await api.GetCharactersCharacterIdAsync(
                    characterId : id,
                    datasource : ESIConfiguration.DataSource);
            }
            catch (Eve.Api.Client.ApiException e)
            {
                ExceptionHandler.HandleApiException(this, e);
                data.LoadFailed = true;
                return;
            }

            data.PrimaryMembership   = info.CorporationId.HasValue ? new MailRecipient(EntityType.Corporation, info.CorporationId.Value) : null;
            data.SecondaryMembership = info.AllianceId.HasValue ? new MailRecipient(EntityType.Alliance, info.AllianceId.Value) : null;

            data.Description = info.Description;

            data.Race      = mRaces.GetValueOrDefault(info.RaceId.GetValueOrDefault(-1), "(Unknown)");
            data.Bloodline = mBloodlines.GetValueOrDefault(info.BloodlineId.GetValueOrDefault(-1), "(Unknown)");

            data.Birthday          = info.Birthday.GetValueOrDefault(EVE_CLIENT_LAUNCH);
            data.Gender            = info.Gender.GetValueOrDefault().ToString();
            data.SecurityStatus    = info.SecurityStatus.GetValueOrDefault();
            data.HasSecurityStatus = true;

            await mClient.AddLookupAsync(data.PrimaryMembership);

            await mClient.AddLookupAsync(data.SecondaryMembership);

            data.InfoLoaded = true;
        }