private void GetAccountSettings() { _getAccountSettingsCommand.SetCanExecute(false); try { var serverAccountSettings = _outlookAccountPasswordProvider.GetAccountServerSettings(_currentOptions.FolderAccountName); EmailAddress = serverAccountSettings.EmailAddress; string path = !string.IsNullOrEmpty(CalenderUrl) ? new Uri(CalenderUrl).AbsolutePath : string.Empty; bool success; var dnsDiscoveredUrl = OptionTasks.DoSrvLookup(EmailAddress, OlItemType.olAppointmentItem, out success); CalenderUrl = success ? dnsDiscoveredUrl : "https://" + serverAccountSettings.ServerString + path; UserName = serverAccountSettings.UserName; UseAccountPassword = true; } catch (Exception x) { s_logger.Error("Exception while getting account settings.", x); string message = null; for (Exception ex = x; ex != null; ex = ex.InnerException) { message += ex.Message + Environment.NewLine; } MessageBox.Show(message, "Account settings"); } finally { _getAccountSettingsCommand.SetCanExecute(true); } }
public async Task <ServerResources> GetServerResources() { string caldavUrlString; string carddavUrlString; if (string.IsNullOrEmpty(CalenderUrl) && !string.IsNullOrEmpty(EmailAddress)) { bool success; caldavUrlString = OptionTasks.DoSrvLookup(EmailAddress, OlItemType.olAppointmentItem, out success); carddavUrlString = OptionTasks.DoSrvLookup(EmailAddress, OlItemType.olContactItem, out success); } else { caldavUrlString = CalenderUrl; carddavUrlString = CalenderUrl; } var trimmedCaldavUrl = caldavUrlString.Trim(); var caldavUrl = new Uri(trimmedCaldavUrl.EndsWith("/") ? trimmedCaldavUrl : trimmedCaldavUrl + "/"); var trimmedCarddavUrl = carddavUrlString.Trim(); var carddavUrl = new Uri(trimmedCarddavUrl.EndsWith("/") ? trimmedCarddavUrl : trimmedCarddavUrl + "/"); var webDavClientCaldav = _prototypeModel.CreateWebDavClient(new Uri(trimmedCaldavUrl)); var webDavClientCarddav = _prototypeModel.CreateWebDavClient(new Uri(trimmedCarddavUrl)); var calDavDataAccess = new CalDavDataAccess(caldavUrl, webDavClientCaldav); var cardDavDataAccess = new CardDavDataAccess(carddavUrl, webDavClientCarddav, string.Empty, contentType => true); return(await GetUserResources(calDavDataAccess, cardDavDataAccess)); }
public async Task <ServerResources> GetServerResources(NetworkSettingsViewModel networkSettings, GeneralOptions generalOptions) { string caldavUrlString; string carddavUrlString; if (string.IsNullOrEmpty(CalenderUrl) && !string.IsNullOrEmpty(EmailAddress)) { bool success; caldavUrlString = OptionTasks.DoSrvLookup(EmailAddress, OlItemType.olAppointmentItem, out success); carddavUrlString = OptionTasks.DoSrvLookup(EmailAddress, OlItemType.olContactItem, out success); } else { caldavUrlString = CalenderUrl; carddavUrlString = CalenderUrl; } var trimmedCaldavUrl = caldavUrlString.Trim(); var caldavUrl = new Uri(trimmedCaldavUrl.EndsWith("/") ? trimmedCaldavUrl : trimmedCaldavUrl + "/"); var trimmedCarddavUrl = carddavUrlString.Trim(); var carddavUrl = new Uri(trimmedCarddavUrl.EndsWith("/") ? trimmedCarddavUrl : trimmedCarddavUrl + "/"); var webDavClientCaldav = CreateWebDavClient(networkSettings, generalOptions, trimmedCaldavUrl); var webDavClientCarddav = CreateWebDavClient(networkSettings, generalOptions, trimmedCarddavUrl); var calDavDataAccess = new CalDavDataAccess(caldavUrl, webDavClientCaldav); var cardDavDataAccess = new CardDavDataAccess(carddavUrl, webDavClientCarddav); return(await GetUserResources(calDavDataAccess, cardDavDataAccess)); }
public void AutoFillServerSettings(OptionsModel optionsModel) { var serverAccountSettings = _outlookAccountPasswordProvider.GetAccountServerSettings(optionsModel.FolderAccountName); optionsModel.EmailAddress = serverAccountSettings.EmailAddress; string path = !string.IsNullOrEmpty(optionsModel.CalenderUrl) ? new Uri(optionsModel.CalenderUrl).AbsolutePath : string.Empty; bool success; var dnsDiscoveredUrl = OptionTasks.DoSrvLookup(optionsModel.EmailAddress, OlItemType.olAppointmentItem, out success); optionsModel.CalenderUrl = success ? dnsDiscoveredUrl : "https://" + serverAccountSettings.ServerString + path; optionsModel.UserName = serverAccountSettings.UserName; optionsModel.UseAccountPassword = true; }