Пример #1
0
        public void RequestAppTicket(uint appId)
        {
            if (AppTickets.ContainsKey(appId) || bAborted)
            {
                return;
            }

            Action <SteamApps.AppOwnershipTicketCallback, JobID> cbMethod = (appTicket, jobId) =>
            {
                if (appTicket.Result != EResult.OK)
                {
                    Console.WriteLine("Unable to get appticket for {0}: {1}", appTicket.AppID, appTicket.Result);
                    Abort();
                }
                else
                {
                    Console.WriteLine("Got appticket for {0}!", appTicket.AppID);
                    AppTickets[appTicket.AppID] = appTicket.Ticket;
                }
            };

            using (JobCallback <SteamApps.AppOwnershipTicketCallback> appTicketCallback = new JobCallback <SteamApps.AppOwnershipTicketCallback>(cbMethod, callbacks, steamApps.GetAppOwnershipTicket(appId)))
            {
                do
                {
                    WaitForCallbacks();
                }while (!appTicketCallback.Completed && !bAborted);
            }
        }
Пример #2
0
        public void RequestAppTicket(uint appId)
        {
            if (AppTickets.ContainsKey(appId) || bAborted)
            {
                return;
            }


            if (!authenticatedUser)
            {
                AppTickets[appId] = null;
                return;
            }

            bool completed = false;
            Action <SteamApps.AppOwnershipTicketCallback> cbMethod = (appTicket) =>
            {
                completed = true;

                if (appTicket.Result != EResult.OK)
                {
                    Console.WriteLine("Unable to get appticket for {0}: {1}", appTicket.AppID, appTicket.Result);
                    Abort();
                }
                else
                {
                    Console.WriteLine("Got appticket for {0}!", appTicket.AppID);
                    AppTickets[appTicket.AppID] = appTicket.Ticket;
                }
            };

            WaitUntilCallback(() => {
                callbacks.Subscribe(steamApps.GetAppOwnershipTicket(appId), cbMethod);
            }, () => { return(completed); });
        }
Пример #3
0
        public async Task <byte[]> RequestAppTicket(uint appId)
        {
            if (!AppTickets.ContainsKey(appId))
            {
                AppTickets[appId] = (await Apps.GetAppOwnershipTicket(appId)).Ticket;
            }

            return(AppTickets[appId]);
        }
Пример #4
0
        public Task <bool> RequestAppTicket(uint appId)
        {
            var tsc = new TaskCompletionSource <bool>();

            if (AppTickets.ContainsKey(appId) || bAborted)
            {
                tsc.SetResult(true);
                return(tsc.Task);
            }
            else if (!authenticatedUser)
            {
                tsc.SetResult(true);
                AppTickets[appId] = null;
                return(tsc.Task);
            }
            else
            {
                IDisposable subscription = null;
                Action <SteamApps.AppOwnershipTicketCallback> cbMethod = (appTicket) =>
                {
                    subscription.Dispose();
                    if (appTicket.Result != EResult.OK)
                    {
                        DebugLog.WriteLine("Steam3Session", "Unable to get appticket for " + appTicket.AppID + ": " + appTicket.Result);
                        Abort();
                    }
                    else
                    {
                        DebugLog.WriteLine("Steam3Session", "Got appticket for " + appTicket.AppID);
                        AppTickets[appTicket.AppID] = appTicket.Ticket;
                    }
                    tsc.SetResult(true);
                };

                subscription = callbacks.Subscribe(steamApps.GetAppOwnershipTicket(appId), cbMethod);
                return(tsc.Task);
            }
        }