1. public Task<List<string>> GetAvailableLibraries(string serverName)
  2. {
  3. var tcs = new TaskCompletionSource<List<string>>();
  4. service.GetAvailableLibrariesCompleted += (sender, args) =>
  5. {
  6. if (args.Error != null) tcs.TrySetResult(new List<string>());
  7. try
  8. {
  9. if (args.Result != null)
  10. tcs.TrySetResult(args.Result.ToList());
  11. else
  12. tcs.TrySetResult(new List<string>());
  13. }
  14. catch
  15. {
  16. tcs.TrySetResult(new List<string>());
  17. }
  18. };
  19. try
  20. {
  21. service.GetAvailableLibrariesAsync(serverName);
  22. }
  23. catch (Exception ex)
  24. {
  25. }
  26. return tcs.Task;
  27. }