public Controller() { _header = new Header(this); _homePage = new HomePage(this); _subscriptionInfoBar = new SubscriptionInfoBar(this); _mainForm = new MainForm(this, _header, _subscriptionInfoBar); //SyncAccounts(); var serverAccounts = Model.ServerAccounts.Find(new ServerAccount()); foreach (var serverAccount in serverAccounts) { _syncServers.Add(serverAccount.Id, new Sync(this, serverAccount.Id)); _syncServers[serverAccount.Id].Start(); } var managementAccount = Model.ServerManagementAccounts.Find(new ServerManagementAccount()).FirstOrDefault(); if (managementAccount != null) { _syncManagement = new SyncManagement(this, managementAccount.Id); _syncManagement.Start(); } }
public bool RegisterWithServerManagement() { var serverManagementAccount = new ServerManagementAccount { HttpsEnabled = Config.ManagementHttps, Host = Config.ManagementHost, Port = Config.ManagementPort, ApiVersion = Config.ManagementApiVersion, Label = Config.ManagementLabel, Subscribed = false, InTrial = true, TrialEndsAt = DateTime.Today.AddDays(Config.TrialLengthDays) }; using (var form = new ServerManagementRegister(this)) { form.ShowDialog(); if (!form.Success) return false; using (var formConfirm = new ServerManagementRegisterConfirm(this, serverManagementAccount, form.RegistrationIdentifier, form.ClientToken)) { formConfirm.ShowDialog(); if (!formConfirm.Success) return false; serverManagementAccount.EmailAddress = form.EmailAddress; var newManagementAccountId = Model.ServerManagementAccounts.Create(serverManagementAccount); _syncManagement = new SyncManagement(this, newManagementAccountId); _syncManagement.Start(); var registrationIdentifier = formConfirm.ServerRegistrationIdentifier; var clientToken = formConfirm.ServerClientToken; var recoveryPasswordPlaintext = form.RecoveryPasswordPlainText; Task.Run(() => RegisterServerComplete(registrationIdentifier, clientToken, recoveryPasswordPlaintext)); } } return true; }
public bool LoginToServerManagement(string emailAddress, string recoveryPassword) { var apiClient = new ApiClient( Config.ManagementHttps, Config.ManagementHost, Config.ManagementPort, Config.ManagementApiVersion); LoginWithRecoveryKey.ResponseParams response; try { var request = new LoginWithRecoveryKey { EmailAddress = emailAddress, RecoveryPasswordClientHash = HashUtil.GenerateServerManagerRecoveryPasswordHash(emailAddress, recoveryPassword) }; response = request.GetResponse(apiClient); } catch (UnauthorizedException) { MessageBox.Show(@"Incorrect email or recovery passphrase"); return false; } catch (RequestException) { MessageBox.Show(@"Error logging in to server"); return false; } var managementAccountId = Model.ServerManagementAccounts.Create(new ServerManagementAccount { HttpsEnabled = Config.ManagementHttps, Host = Config.ManagementHost, Port = Config.ManagementPort, ApiVersion = Config.ManagementApiVersion, UserIdentifier = response.UserIdentifier, EmailAddress = emailAddress, ApiKey = response.ApiKey }); _syncManagement = new SyncManagement(this, managementAccountId); _syncManagement.Start(); UpdateHeader(); Task.Run(() => GetServersFromServerManagement(recoveryPassword)); return true; }