/// <summary> /// ApplyChangeSetToInput: Applies the change set data to the input data /// </summary> public void ApplyChangeSetToInput() { DeserializeFiles(); PlayListOperations playListOperations = new PlayListOperations(inputData, changeSetData); inputData = playListOperations.ApplyChangeSetToInput(); }
/// <summary> /// DeserializeFiles: DeserializeFiles json file to C# objects /// </summary> private void DeserializeFiles() { IInputDataReader jsonDataReader = new JsonDataReader(); inputData = jsonDataReader.DeserializeInputData(InputFile); changeSetData = jsonDataReader.DeserializeChangeSet(ChangeFile); }
/// <summary> /// GenerateOutputFile: Generates json output file based on the object data passed. If the target exists, file is overwritten /// </summary> /// <param name="usersSongsPlayLists"></param> /// <param name="outputfilepath"></param> public void GenerateOutputFile(UsersSongsPlayLists usersSongsPlayLists, string outputfilepath) { var jsondata = SerializeToJsonString(usersSongsPlayLists); try { File.WriteAllText(outputfilepath, jsondata); } catch (DirectoryNotFoundException dirNotFoundException) { Console.WriteLine($"Error during file write, directory not found: {dirNotFoundException}"); } catch (UnauthorizedAccessException unauthorizedAccessException) { Console.WriteLine($"Error during file write: {unauthorizedAccessException}"); } catch (IOException ioException) { Console.WriteLine($"Error during file write { ioException}"); } catch (Exception exception) { Console.WriteLine($"Error during file write{ exception}"); } }
/// <summary> /// SerializeToJsonString: Serialize .net object usersSongsPlayLists to json string. /// </summary> /// <param name="usersSongsPlayLists"></param> /// <returns></returns> private string SerializeToJsonString(UsersSongsPlayLists usersSongsPlayLists) { var options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, WriteIndented = true, }; return(JsonSerializer.Serialize(usersSongsPlayLists, options)); }
public PlayListOperations(UsersSongsPlayLists inputData, UsersSongsPlayListsChangeSet changeSet) { base.inputData = inputData; base.changeSetData = changeSet; }