static bool SaveApplySettings(SQLLib sql, ServerSettings newsettings) { if (Certificates.CertificateExists(newsettings.UseCertificate, System.Security.Cryptography.X509Certificates.StoreLocation.LocalMachine) == false) { return(false); } if (newsettings.EMailPort < 1 || newsettings.EMailPort > 65535) { return(false); } if (newsettings.KeepEventLogDays < 0) { return(false); } if (newsettings.KeepNonPresentDisks < 0) { return(false); } if (newsettings.KeepReports < 0) { return(false); } if (newsettings.KeepChatLogs < 0) { return(false); } if (newsettings.KeepBitlockerRK < 0) { return(false); } if (string.IsNullOrWhiteSpace(newsettings.AdministratorName) == true) { newsettings.AdministratorName = "Administrator"; } if (string.IsNullOrWhiteSpace(newsettings.AdminIPAddresses) == true) { newsettings.AdminIPAddresses = ""; } else { foreach (string s in newsettings.AdminIPAddresses.Split(',')) { if (s.Contains("/") == false) { return(false); } IPNetwork ip; if (IPNetwork.TryParse(s, out ip) == false) { return(false); } } } Settings.UseCertificate = newsettings.UseCertificate; Settings.KeepEventLogDays = newsettings.KeepEventLogDays; Settings.KeepBitlockerRK = newsettings.KeepBitlockerRK; Settings.KeepChatLogs = newsettings.KeepChatLogs; Settings.KeepNonPresentDisks = newsettings.KeepNonPresentDisks; Settings.EMailAdminTo = newsettings.EMailAdminTo; Settings.EMailFrom = newsettings.EMailFrom; Settings.EMailFromFriendly = newsettings.EMailFromFriendly; Settings.EMailPort = newsettings.EMailPort; Settings.EMailServer = newsettings.EMailServer; Settings.EMailUsername = newsettings.EMailUsername; Settings.EMailPassword = newsettings.EMailPassword; Settings.EMailUseSSL = newsettings.EMailUseSSL; Settings.EMailAdminScheduling = newsettings.EMailAdminScheduling; Settings.EMailClientScheduling = newsettings.EMailClientScheduling; Settings.EMailAdminIsHTML = newsettings.EMailAdminIsHTML; Settings.EMailClientIsHTML = newsettings.EMailClientIsHTML; Settings.EMailAdminText = newsettings.EMailAdminText; Settings.EMailClientText = newsettings.EMailClientText; Settings.EMailAdminSubject = newsettings.EMailAdminSubject; Settings.EMailClientSubject = newsettings.EMailClientSubject; Settings.AdminIPAddresses = newsettings.AdminIPAddresses; Settings.AdministratorName = newsettings.AdministratorName; Settings.KeepReports = newsettings.KeepReports; Settings.MessageDisclaimer = newsettings.MessageDisclaimer; PutString(sql, "UseCertificate", Settings.UseCertificate); PutInt64(sql, "KeepEventLogDays", Settings.KeepEventLogDays); PutInt64(sql, "KeepNonPresentDisks", Settings.KeepNonPresentDisks); PutInt64(sql, "KeepBitlockerRK", Settings.KeepBitlockerRK); PutInt64(sql, "KeepReports", Settings.KeepReports); PutInt64(sql, "KeepChatLogs", Settings.KeepChatLogs); PutString(sql, "EMailAdminTo", Settings.EMailAdminTo); PutString(sql, "EMailFrom", Settings.EMailFrom); PutString(sql, "EMailFromFriendly", Settings.EMailFromFriendly); PutInt(sql, "EMailPort", Settings.EMailPort); PutString(sql, "EMailServer", Settings.EMailServer); PutString(sql, "EMailUsername", Settings.EMailUsername); PutString(sql, "EMailPassword", Settings.EMailPassword); PutBool(sql, "EMailUseSSL", Settings.EMailUseSSL); PutBool(sql, "EMailAdminIsHTML", Settings.EMailAdminIsHTML); PutBool(sql, "EMailClientIsHTML", Settings.EMailClientIsHTML); PutString(sql, "EMailAdminText", Settings.EMailAdminText); PutString(sql, "EMailClientText", Settings.EMailClientText); PutString(sql, "EMailAdminSubject", Settings.EMailAdminSubject); PutString(sql, "EMailClientSubject", Settings.EMailClientSubject); PutString(sql, "AdminIPAddresses", Settings.AdminIPAddresses); PutString(sql, "AdminstratorName", Settings.AdministratorName); PutString(sql, "MessageDisclaimer", Settings.MessageDisclaimer); PutString(sql, "EMailAdminSched", JsonConvert.SerializeObject(Settings.EMailAdminScheduling)); PutString(sql, "EMailClientSched", JsonConvert.SerializeObject(Settings.EMailClientScheduling)); return(true); }