System.Threading.Tasks.TaskCompletionSource.TrySetResult(ReadyEventArgs)

Here are the examples of the csharp api System.Threading.Tasks.TaskCompletionSource.TrySetResult(ReadyEventArgs) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

1 Examples 7

19 Source : App.xaml.cs
with MIT License
from UnicordDev

internal static async Task LoginAsync(string token, AsyncEventHandler<ReadyEventArgs> onReady, Func<Exception, Task> onError, bool background, UserStatus status = UserStatus.Online)
        {
            Exception taskEx = null;

            await _connectSemapreplaced.WaitAsync();
            try
            {
                var loader = ResourceLoader.GetForViewIndependentUse();

                if (Discord == null)
                {
                    if (background || await WindowsHelloManager.VerifyAsync(VERIFY_LOGIN, loader.GetString("VerifyLoginDisplayReason")))
                    {
                        try
                        {
                            async Task ReadyHandler(ReadyEventArgs e)
                            {
                                LocalSettings.Save("Token", token);

                                e.Client.Ready -= ReadyHandler;
                                e.Client.SocketErrored -= SocketErrored;
                                e.Client.ClientErrored -= ClientErrored;
                                _readySource.TrySetResult(e);
                                if (onReady != null)
                                {
                                    await onReady(e);
                                }
                            }

                            Task SocketErrored(SocketErrorEventArgs e)
                            {
                                e.Client.Ready -= ReadyHandler;
                                e.Client.SocketErrored -= SocketErrored;
                                e.Client.ClientErrored -= ClientErrored;

                                Logger.LogError(e.Exception);

                                _readySource.SetException(e.Exception);
                                return Task.CompletedTask;
                            }

                            Task ClientErrored(ClientErrorEventArgs e)
                            {
                                e.Client.Ready -= ReadyHandler;
                                e.Client.SocketErrored -= SocketErrored;
                                e.Client.ClientErrored -= ClientErrored;

                                Logger.LogError(e.Exception);

                                _readySource.SetException(e.Exception);
                                return Task.CompletedTask;
                            }

                            Discord = new DiscordClient(new DiscordConfiguration()
                            {
                                Token = token,
                                TokenType = TokenType.User,
                                LogLevel = DSharpPlus.LogLevel.Debug,
                            });

                            Discord.DebugLogger.LogMessageReceived += (o, ee) => Logger.Log(ee.Message, ee.Application);
                            Discord.Ready += ReadyHandler;
                            Discord.SocketErrored += SocketErrored;
                            Discord.ClientErrored += ClientErrored;

                            await Discord.ConnectAsync(status: status, idlesince: replacedyticsInfo.VersionInfo.DeviceFamily == "Windows.Desktop" ? (DateTimeOffset?)null : DateTimeOffset.Now);
                        }
                        catch (Exception ex)
                        {
                            Logger.LogError(ex);
                            Tools.ResetPreplacedwordVault();
                            _readySource.TrySetException(ex);
                            await onError(ex);
                        }
                    }
                    else
                    {
                        await onError(null);
                    }
                }
                else
                {
                    try
                    {
                        var res = await _readySource.Task;
                        await onReady(res);
                    }
                    catch
                    {
                        await onError(taskEx);
                    }
                }
            }
            finally
            {
                _connectSemapreplaced.Release();
            }
        }