public async Task <IActionResult> ExternalCalendarProviders()
        {
            var user = await _userManager.GetCurrentUserAsync();

            if (!user.IsSuccess)
            {
                return(NotFound());
            }
            var userId      = user.Result.Id;
            var factory     = new ExternalCalendarProviderFactory();
            var providers   = factory.GetProvidersInfo();
            var exportModel = new List <ExternalCalendarProviderSettingsViewModel>();

            foreach (var provider in providers)
            {
                var providerConf = new ExternalCalendarProviderSettingsViewModel
                {
                    ProviderName    = provider.ProviderName,
                    FontAwesomeIcon = provider.FontAwesomeIcon,
                    DisplayName     = provider.DisplayName
                };

                var isEnabledRequest = await _userSettingsService.IsProviderEnabledAsync(userId, provider.ProviderName);

                providerConf.IsEnabled = isEnabledRequest.IsSuccess;

                if (!isEnabledRequest.IsSuccess)
                {
                    exportModel.Add(providerConf); continue;
                }

                var providerService = factory.CreateService(provider.ProviderName);
                var authResult      = await providerService.AuthorizeAsync(userId);

                if (authResult.IsSuccess)
                {
                    var provideruserRequest = await providerService.GetUserAsync();

                    if (provideruserRequest.IsSuccess)
                    {
                        var providerUser = provideruserRequest.Result;
                        providerConf.User = new ExternalCalendarUser
                        {
                            IsAuthorized = true,
                            UserName     = providerUser.DisplayName,
                            EmailAdress  = providerUser.EmailAddress,
                            ImageUrl     = providerUser.ImageUrl
                        };
                    }
                }
                exportModel.Add(providerConf);
            }

            return(View(exportModel));
        }