public void Update() { var parseErrorNotifications = (int?)System.Runtime.Caching.MemoryCache.Default["ParseErrorNotifications"] ?? 0; try { var serverAdminJsonCreator = new ServerAdminJsonCreator(); var serverAdminJson = serverAdminJsonCreator.Create(); var contents = Encoding.UTF8.GetBytes(serverAdminJson); var host = ConfigurationManager.AppSettings["FtpHost"]; var port = Convert.ToInt32(ConfigurationManager.AppSettings["FtpPort"]); var username = ConfigurationManager.AppSettings["TgUsername"]; var password = ConfigurationManager.AppSettings["TgPassword"]; var path = ConfigurationManager.AppSettings["ConfigDirFtpPath"]; var sftpFileUploader = new SftpFileUploader(); sftpFileUploader.Upload(contents, host, port, username, password, $"{path}/ServerAdmin.json"); System.Runtime.Caching.MemoryCache.Default["ParseErrorNotifications"] = 0; } catch (Exception e) { if (parseErrorNotifications > 0 && parseErrorNotifications <= 3) { _messagePusher.Push("tgns-admin", "Update Error", $"Message: {e.Message}"); } System.Runtime.Caching.MemoryCache.Default["ParseErrorNotifications"] = parseErrorNotifications + 1; } }
public JsonResult EditConfig(PluginsViewModel viewModel) { var message = string.Empty; var isError = false; var stacktrace = string.Empty; try { JsonConvert.DeserializeObject(viewModel.PluginConfigJson); } catch (Exception ex) { isError = true; message = "Config is not valid JSON. Correct JSON or Undo. Save operation aborted."; stacktrace = ex.StackTrace; } if (!isError) { _pluginConfigurationSetter.Set("ns2", "ns2", viewModel.SelectedPluginName, viewModel.PluginConfigJson); if (viewModel.SelectedPluginName.EndsWith(".json")) { var contents = Encoding.UTF8.GetBytes(viewModel.PluginConfigJson); var host = ConfigurationManager.AppSettings["FtpHost"]; var port = Convert.ToInt32(ConfigurationManager.AppSettings["FtpPort"]); var username = ConfigurationManager.AppSettings["TgUsername"]; var password = ConfigurationManager.AppSettings["TgPassword"]; var path = ConfigurationManager.AppSettings["ConfigDirFtpPath"]; var sftpFileUploader = new SftpFileUploader(); sftpFileUploader.Upload(contents, host, port, username, password, $"{path}/{viewModel.SelectedPluginName}"); //ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true; //FtpUrlTemplates.ForEach(x=> //{ // var contents = Encoding.UTF8.GetBytes(viewModel.PluginConfigJson); // var request = (FtpWebRequest)WebRequest.Create(string.Format(x, viewModel.SelectedPluginName)); // request.Method = WebRequestMethods.Ftp.UploadFile; // request.EnableSsl = true; // request.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["WebAdminUsername"], ConfigurationManager.AppSettings["WebAdminPassword"]); // request.ContentLength = contents.Length; // using (var requestStream = request.GetRequestStream()) // { // requestStream.Write(contents, 0, contents.Length); // } // using (var response = (FtpWebResponse) request.GetResponse()) // { // //Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription); // } //}); } message = string.Format("{0} plugin config saved.", viewModel.SelectedPluginName); } return(Json(new { isError = isError, message = message, stacktrace = stacktrace })); }