private Task <WMIAccessService> TryGetAccessAsync(WMIConnectionOption wmiConnectionOption) { return(Task.Run(async() => { WMIAccessService connectedWMIConnectedAccessService = null; if (wmiConnectionOption != null) { try { var wmiAccessService = new WMIAccessService(); var connected = await wmiAccessService.TryConnectAsync(wmiConnectionOption).ConfigureAwait(false); if (connected) { connectedWMIConnectedAccessService = wmiAccessService; } } catch (Exception exception) { var endPoint = string.IsNullOrEmpty(wmiConnectionOption.EndPoint) ? wmiConnectionOption.DeviceName : wmiConnectionOption.EndPoint; var wmiException = new WMIGeneralException(endPoint, exception); LogEventHandler.Exception(wmiException); } } return connectedWMIConnectedAccessService; })); }
/// <summary> /// Gets WMIAccessService for WMIConnectionOption that have access. /// </summary> /// <param name="wmiConnectionOption">To test access.</param> /// <returns>Returns awaitable Task with WMIAccessService.</returns> public async Task <WMIAccessService> GetAccessAsync(WMIConnectionOption wmiConnectionOption) { return(await TryGetAccessAsync(wmiConnectionOption).ConfigureAwait(false)); }
/// <summary> /// Tries to connect. /// </summary> /// <param name="wmiConnectionOption">To try to connect.</param> /// <returns>Returns awaitable Task with bool state of connection.</returns> public async Task <bool> TryConnectAsync(WMIConnectionOption wmiConnectionOption) { await TryConnectAsync(wmiConnectionOption?.EndPoint, wmiConnectionOption?.ConnectionOptions).ConfigureAwait(false); return(Connected); }