Example #1
0
        public async Task <Item> LoadItem(BungieMembershipType type, long accountId, long characterId,
                                          uint itemHash, long instanceId)
        {
            var accessToken = await _contextAccessor.HttpContext.GetTokenAsync("access_token");

            var modsTask     = LoadAllMods(accessToken, type, accountId);
            var itemTask     = GetItemDefinition(itemHash);
            var instanceTask = GetInstance(accessToken, type, accountId, instanceId);

            await Task.WhenAll(modsTask, itemTask, instanceTask);

            var sockets = await _socketFactory.LoadSockets(itemTask.Result.item.Sockets,
                                                           instanceTask.Result.sockets, modsTask.Result.mods, modsTask.Result.shaders);

            return(new Item(_bungie.BaseUrl, itemTask.Result.item, itemTask.Result.bucket,
                            instanceId, instanceTask.Result.instance, instanceTask.Result.stats,
                            sockets));
        }