/// <summary>Reads the JSON-File.</summary> /// <typeparam name="T">The type of the object to deserialize to.</typeparam> /// <param name="filename">The filename of the JSON file.</param> /// <param name="storingArea">The storing area.</param> /// <returns>The deserialized object from the JSON string.</returns> public T ReadJson <T>(string filename, StoringArea storingArea = StoringArea.Tempfolder) { try { //var file = forUpdates ? filename : PathNames.ConfigPath + filename; string file; switch (storingArea) { case StoringArea.None: file = filename; break; case StoringArea.ApplicationConfig: file = PathNames.ConfigPath + filename; break; case StoringArea.Tempfolder: file = PathNames.TempFolderPath + filename; break; default: throw new ArgumentOutOfRangeException(nameof(storingArea), storingArea, null); } if (!File.Exists(file)) { return(JsonConvert.DeserializeObject <T>(null)); } var logMessage = $"[{GetType().Name}] JSON ({file}) was read"; unityContainer.Resolve <ILoggerFacade>().Log(logMessage, Category.Debug, Priority.None); eventAggregator.GetEvent <StatusBarMessageUpdateEvent>().Publish(Resources.StatusBarReadSettings); return(JsonConvert.DeserializeObject <T>(File.ReadAllText(file))); } catch (Exception ex) { var logMessage = $"[{GetType().Name}] Exception at {MethodBase.GetCurrentMethod()}: {ex}"; unityContainer.Resolve <ILoggerFacade>().Log(logMessage, Category.Exception, Priority.High); DialogService.Exception(ex, DialogService.ExceptionType.Universal); return(JsonConvert.DeserializeObject <T>(null)); } }
/// <summary>Writes the JSON-File.</summary> /// <param name="settings">The complete object of the settings.</param> /// <param name="filename">The filename of the JSON file.</param> /// <param name="storingArea">The storing area.</param> public void WriteJson(object settings, string filename, StoringArea storingArea = StoringArea.Tempfolder) { try { string file; switch (storingArea) { case StoringArea.None: file = filename; break; case StoringArea.ApplicationConfig: if (!Directory.Exists(PathNames.ConfigPath)) { Directory.CreateDirectory(PathNames.ConfigPath); } file = PathNames.ConfigPath + filename; break; case StoringArea.Tempfolder: if (!Directory.Exists(PathNames.TempFolderPath)) { Directory.CreateDirectory(PathNames.TempFolderPath); } file = PathNames.TempFolderPath + filename; break; default: throw new ArgumentOutOfRangeException(nameof(storingArea), storingArea, null); } File.WriteAllText(file, JsonConvert.SerializeObject(settings, Formatting.Indented)); var logMessage = $"[{GetType().Name}] JSON ({file}) was writen"; unityContainer.Resolve <ILoggerFacade>().Log(logMessage, Category.Debug, Priority.None); } catch (Exception ex) { var logMessage = $"[{GetType().Name}] Exception at {MethodBase.GetCurrentMethod()}: {ex}"; unityContainer.Resolve <ILoggerFacade>().Log(logMessage, Category.Exception, Priority.High); DialogService.Exception(ex, DialogService.ExceptionType.Universal); } }