/// <summary> /// Deactivates the asynchronous. /// </summary> /// <param name="link">The link.</param> /// <param name="act">The act.</param> public void DeactivateAsync(ILink link, Action <ILink> act = null) { ILink res = null; using (var wrk = new BackgroundWorker()) { wrk.DoWork += (sender, args) => { try { res = Deactivate(link); } catch (Exception ex) { wrk.Dispose(); Logger.Error(ex.GetCombinedMessages()); } }; wrk.RunWorkerCompleted += (s, e) => { wrk.Dispose(); if (act != null) { act(res); } }; wrk.RunWorkerAsync(); } }
/// <summary> /// Gets the sources asycn. /// </summary> /// <param name="link">The link.</param> /// <param name="activeOnly">if set to <c>true</c> [active only].</param> /// <param name="act">The act.</param> public void GetSourcesAsync(ILink link, bool activeOnly = true, Action <IEnumerable <ILink> > act = null) { IEnumerable <ILink> res = null; using (var wrk = new BackgroundWorker()) { wrk.DoWork += (sender, args) => { try { res = GetTargets(link, activeOnly); } catch (Exception ex) { wrk.Dispose(); Logger.Error(ex.GetCombinedMessages()); } }; wrk.RunWorkerCompleted += (s, e) => { wrk.Dispose(); if (act != null) { act(res); } }; wrk.RunWorkerAsync(); } }
/// <summary> /// Deactivates the specified link. /// </summary> /// <param name="link">The link.</param> /// <returns>ILink.</returns> public ILink Deactivate(ILink link) { var clt = CreateClient(); try { return(clt.Deactivate(link.Zip()).Unzip <Link>()); } catch (Exception ex) { Logger.Error(ex.GetCombinedMessages()); link.AddError(ex.GetCombinedMessages()); return(link); } finally { CloseClient(clt); } }
/// <summary> /// Gets the sources. /// </summary> /// <param name="link">The link.</param> /// <param name="activeOnly">if set to <c>true</c> [active only].</param> /// <returns>IEnumerable<ILink>.</returns> public IEnumerable <ILink> GetSources(ILink link, bool activeOnly = true) { var clt = CreateClient(); try { return(clt .GetSources(link.Zip(), activeOnly) .Unzip <Link>()); } catch (Exception ex) { Logger.Error(ex.GetCombinedMessages()); link.AddError(ex.GetCombinedMessages()); return(new[] { link }); } finally { CloseClient(clt); } }