Exemple #1
0
        /// <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));
            }
        }
Exemple #2
0
        /// <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);
            }
        }