CustomUploaderSettingsForm refactor

This commit is contained in:
Jaex 2020-09-29 17:39:01 +03:00
parent b6c2bd5098
commit 3235365f80
3 changed files with 31 additions and 23 deletions

View file

@ -29,7 +29,6 @@ You should have received a copy of the GNU General Public License
using ShareX.HelpersLib.Properties; using ShareX.HelpersLib.Properties;
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Globalization;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -71,7 +70,7 @@ public ExportImportControl()
InitializeComponent(); InitializeComponent();
} }
public string Serialize(object obj) private string Serialize(object obj)
{ {
if (obj != null) if (obj != null)
{ {
@ -149,7 +148,7 @@ private void tsmiExportUpload_Click(object sender, EventArgs e)
} }
} }
public object Deserialize(string json) private object Deserialize(string json)
{ {
try try
{ {
@ -201,7 +200,7 @@ private void OnImportCompleted()
} }
} }
public void ImportJson(string json) private void ImportJson(string json)
{ {
if (!string.IsNullOrEmpty(json)) if (!string.IsNullOrEmpty(json))
{ {
@ -216,7 +215,7 @@ private void tsmiImportClipboard_Click(object sender, EventArgs e)
ImportJson(json); ImportJson(json);
} }
public void ImportFile(string filePath) private void ImportFile(string filePath)
{ {
string json = File.ReadAllText(filePath, Encoding.UTF8); string json = File.ReadAllText(filePath, Encoding.UTF8);
OnImportRequested(json); OnImportRequested(json);

View file

@ -33,8 +33,8 @@ namespace ShareX.HelpersLib
{ {
public static class JsonHelpers public static class JsonHelpers
{ {
public static void Serialize<T>(T obj, TextWriter textWriter, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Ignore, public static void Serialize<T>(T obj, TextWriter textWriter, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Include,
NullValueHandling nullValueHandling = NullValueHandling.Ignore, ISerializationBinder serializationBinder = null) NullValueHandling nullValueHandling = NullValueHandling.Include, ISerializationBinder serializationBinder = null)
{ {
using (JsonTextWriter jsonTextWriter = new JsonTextWriter(textWriter)) using (JsonTextWriter jsonTextWriter = new JsonTextWriter(textWriter))
{ {
@ -51,8 +51,8 @@ public static void Serialize<T>(T obj, TextWriter textWriter, DefaultValueHandli
} }
} }
public static string SerializeToString<T>(T obj, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Ignore, public static string SerializeToString<T>(T obj, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Include,
NullValueHandling nullValueHandling = NullValueHandling.Ignore, ISerializationBinder serializationBinder = null) NullValueHandling nullValueHandling = NullValueHandling.Include, ISerializationBinder serializationBinder = null)
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@ -64,8 +64,8 @@ public static string SerializeToString<T>(T obj, DefaultValueHandling defaultVal
return sb.ToString(); return sb.ToString();
} }
public static void SerializeToStream<T>(T obj, Stream stream, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Ignore, public static void SerializeToStream<T>(T obj, Stream stream, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Include,
NullValueHandling nullValueHandling = NullValueHandling.Ignore, ISerializationBinder serializationBinder = null) NullValueHandling nullValueHandling = NullValueHandling.Include, ISerializationBinder serializationBinder = null)
{ {
using (StreamWriter streamWriter = new StreamWriter(stream)) using (StreamWriter streamWriter = new StreamWriter(stream))
{ {
@ -73,16 +73,16 @@ public static void SerializeToStream<T>(T obj, Stream stream, DefaultValueHandli
} }
} }
public static MemoryStream SerializeToMemoryStream<T>(T obj, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Ignore, public static MemoryStream SerializeToMemoryStream<T>(T obj, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Include,
NullValueHandling nullValueHandling = NullValueHandling.Ignore, ISerializationBinder serializationBinder = null) NullValueHandling nullValueHandling = NullValueHandling.Include, ISerializationBinder serializationBinder = null)
{ {
MemoryStream memoryStream = new MemoryStream(); MemoryStream memoryStream = new MemoryStream();
SerializeToStream(obj, memoryStream, defaultValueHandling, nullValueHandling, serializationBinder); SerializeToStream(obj, memoryStream, defaultValueHandling, nullValueHandling, serializationBinder);
return memoryStream; return memoryStream;
} }
public static void SerializeToFile<T>(T obj, string filePath, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Ignore, public static void SerializeToFile<T>(T obj, string filePath, DefaultValueHandling defaultValueHandling = DefaultValueHandling.Include,
NullValueHandling nullValueHandling = NullValueHandling.Ignore, ISerializationBinder serializationBinder = null) NullValueHandling nullValueHandling = NullValueHandling.Include, ISerializationBinder serializationBinder = null)
{ {
if (!string.IsNullOrEmpty(filePath)) if (!string.IsNullOrEmpty(filePath))
{ {

View file

@ -294,6 +294,21 @@ private void CustomUploaderClearFields()
CustomUploaderLoad(CustomUploaderItem.Init()); CustomUploaderLoad(CustomUploaderItem.Init());
} }
private void CustomUploaderSerialize(CustomUploaderItem cui, string folderPath)
{
try
{
string filePath = Path.Combine(folderPath, cui.GetFileName());
JsonHelpers.SerializeToFile(cui, filePath, DefaultValueHandling.Ignore, NullValueHandling.Ignore);
}
catch (Exception e)
{
DebugHelper.WriteException(e);
// TODO: Translate
MessageBox.Show("Export failed." + "\n\n" + e, "ShareX - " + "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void CustomUploaderExportAll() private void CustomUploaderExportAll()
{ {
if (Config.CustomUploadersList != null && Config.CustomUploadersList.Count > 0) if (Config.CustomUploadersList != null && Config.CustomUploadersList.Count > 0)
@ -304,9 +319,7 @@ private void CustomUploaderExportAll()
{ {
foreach (CustomUploaderItem cui in Config.CustomUploadersList) foreach (CustomUploaderItem cui in Config.CustomUploadersList)
{ {
string json = eiCustomUploaders.Serialize(cui); CustomUploaderSerialize(cui, fsd.FileName);
string filePath = Path.Combine(fsd.FileName, cui.GetFileName());
File.WriteAllText(filePath, json, Encoding.UTF8);
} }
} }
} }
@ -333,11 +346,7 @@ private void CustomUploaderUpdateFolder()
if (cui != null) if (cui != null)
{ {
cui.CheckBackwardCompatibility(); cui.CheckBackwardCompatibility();
CustomUploaderSerialize(cui, folderPath);
string json = eiCustomUploaders.Serialize(cui);
string newFilePath = Path.Combine(folderPath, cui.GetFileName());
File.WriteAllText(newFilePath, json, Encoding.UTF8);
updated++; updated++;
} }
} }