Beispiel #1
0
        public async Task <DestinyPlayerData> GetPlayerDataAsync(DestinyPlayer player)
        {
            var bungie         = new BungieService(Shared.SharedData.BungieApiKey);
            int platform       = player.MembershipType;
            var accountId      = player.MembershipId;
            var destinyProfile = await bungie.GetDestinyProfile(platform, accountId);

            int mode = 5;

            await bungie.DownloadDestinyManifest();

            var nameplates           = new List <CharacterNameplateViewModel>();
            var activityHistoryLists = new List <List <PgcrCardViewModel> >();
            var characterIds         = destinyProfile.Data.CharacterIds;

            for (int i = 0; i < characterIds.Count; i++)
            {
                var characterId = destinyProfile.Data.CharacterIds[i];
                var history     = await bungie.GetActivityHistory(platform, accountId, characterId, mode);

                var character = await bungie.GetDestinyCharacter(platform, accountId, characterId);

                var nameplate = new CharacterNameplateViewModel
                {
                    ElementVisibility = Visibility.Visible,
                    ClassName         = (await bungie.GetDestinyClassDefinitionAsync(character.Data.ClassHash)).DisplayProperties.Name,
                    Race   = (await bungie.GetDestinyRaceDefinitionAsync(character.Data.RaceHash)).DisplayProperties.Name,
                    Gender = (await bungie.GetDestinyGenderDefinitionAsync(character.Data.GenderHash)).DisplayProperties.Name,
                    Level  = character.Data.BaseCharacterLevel,
                    Power  = character.Data.Light
                };

                var emblemBrush = new ImageBrush();
                emblemBrush.ImageSource = await bungie.GetDestinyImage(character.Data.EmblemBackgroundPath);

                nameplate.Emblem = emblemBrush;

                var historyList = new List <PgcrCardViewModel>();
                foreach (var pgcr in history)
                {
                    historyList.Add(new PgcrCardViewModel
                    {
                        Pgcr        = pgcr,
                        CharacterId = characterId
                    });
                }

                nameplates.Add(nameplate);
                activityHistoryLists.Add(historyList);
            }

            return(new DestinyPlayerData
            {
                CharacterNameplates = nameplates,
                ActivityHistoryLists = activityHistoryLists,
                CharacterIDs = characterIds,
                MembershipID = player.MembershipId,
                MembershipType = player.MembershipType
            });
        }
        public PlayerSearchResultViewModel(DestinyPlayer player)
        {
            Player   = player;
            Username = player.DisplayName;
            switch (player.MembershipType)
            {
            case 1:
                PlatformColor = Color.FromArgb(255, 16, 124, 16);
                PlatformIcon  = new BitmapImage(new Uri("ms-appx:///Resources/Xbox.png"));
                break;

            case 2:
                PlatformColor = Color.FromArgb(255, 0, 55, 145);
                PlatformIcon  = new BitmapImage(new Uri("ms-appx:///Resources/PS4.png"));
                break;

            case 4:
                PlatformColor = Color.FromArgb(255, 3, 135, 209);
                PlatformIcon  = new BitmapImage(new Uri("ms-appx:///Resources/PC.png"));
                break;

            default:
                PlatformColor = Color.FromArgb(255, 128, 128, 128);
                PlatformIcon  = new BitmapImage(new Uri("ms-appx:///Resources/Unknown.png"));
                break;
            }
        }
        private async void OnPlayerSelected(object sender, DestinyPlayer player)
        {
            var data = await GetPlayerDataAsync(player);

            ActivityHistoryPane.PopulateActivityHistory(data);
            CharacterSwitcher.PopulateNameplates(data);
            SettingsDialog.PlayerData  = data;
            SearchPane.IsNarrowVisible = false;
        }
Beispiel #4
0
 public void OnPlayerSelected(DestinyPlayer player)
 {
     PlayerSelected?.Invoke(this, player);
 }
        private async Task <DestinyPlayerData> GetPlayerDataAsync(DestinyPlayer player)
        {
            var appService = new AppService();

            return(await appService.GetPlayerDataAsync(player));
        }