public static async Task <PluginConnection> CreateAsync(string serviceName, AppExtension appExtension, IProgress <TProgress> progress, CancellationToken cancelTokem = default(CancellationToken)) { var connection = new AppServiceConnection(); var pluginConnection = new PluginConnection(connection, progress, cancelTokem); connection.AppServiceName = serviceName; connection.PackageFamilyName = appExtension.Package.Id.FamilyName; var status = await connection.OpenAsync(); //If the new connection opened successfully we're done here if (status == AppServiceConnectionStatus.Success) { return(pluginConnection); } else { //Clean up before we go var exception = new Exceptions.ConnectionFailureException(status, connection); connection.Dispose(); connection = null; throw exception; } }
private Task <PluginConnection> GetPluginConnection(IProgress <TProgress> progress, CancellationToken cancelTokem) => PluginConnection.CreateAsync(this.ServiceName, this.Extension, progress, cancelTokem);