Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }