private async Task <string> TestGoogleTaskConnection(OptionsModel options, StringBuilder errorMessageBuilder, OlItemType outlookFolderType, string url) { var service = await GoogleHttpClientFactory.LoginToGoogleTasksService(options.EmailAddress, options.GetProxyIfConfigured()); string connectionTestUrl; if (string.IsNullOrEmpty(url)) { TaskLists taskLists = await service.Tasklists.List().ExecuteAsync(); if (taskLists.Items.Any()) { var selectedTaskList = SelectTaskList(taskLists.Items.Select(i => new TaskListData(i.Id, i.Title, AccessPrivileges.All)).ToArray()); if (selectedTaskList != null) { connectionTestUrl = selectedTaskList.Id; } else { return(url); } } else { connectionTestUrl = url; } } else { connectionTestUrl = url; } try { await service.Tasklists.Get(connectionTestUrl).ExecuteAsync(); } catch (Exception x) { s_logger.Error(null, x); errorMessageBuilder.AppendFormat(Strings.Get($"The tasklist with id '{connectionTestUrl}' is invalid.")); MessageBox.Show(errorMessageBuilder.ToString(), Strings.Get($"The tasklist is invalid"), MessageBoxButtons.OK, MessageBoxIcon.Error); return(url); } TestResult result = new TestResult(ResourceType.TaskList, CalendarProperties.None, AddressBookProperties.None, AccessPrivileges.None, false, null); DisplayTestReport( result, options.SynchronizationMode, _enumDisplayNameProvider.Get(options.SynchronizationMode), outlookFolderType); return(connectionTestUrl); }
private async Task <string> TestGoogleContactsConnection(OptionsModel options, OlItemType outlookFolderType, string url) { var service = await GoogleHttpClientFactory.LoginToContactsService(options.EmailAddress, options.GetProxyIfConfigured()); try { await Task.Run(() => service.GetGroups()); } catch (Exception x) { s_logger.Error(null, x); MessageBox.Show(x.Message, ConnectionTestCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); return(url); } TestResult result = new TestResult( ResourceType.AddressBook, CalendarProperties.None, AddressBookProperties.AddressBookAccessSupported, AccessPrivileges.All, false, null); DisplayTestReport( result, options.SynchronizationMode, _enumDisplayNameProvider.Get(options.SynchronizationMode), outlookFolderType); return(string.Empty); }