private void SaveRawJson(JObject json) { var saveFileDialog = new SaveFileDialog { InitialDirectory = Path.GetDirectoryName(data.Global["json-path"] ?? SpreadsheetPath), FileName = Path.GetFileName(data.Global["json-path"] ?? "result.json"), DefaultExt = ".json", Filter = "Json Asset (*.json)|*.json" }; var result = saveFileDialog.ShowDialog(); if (result != true) { Logs.Add(LogViewModel.Warn("Operation canceled!")); return; } var jsonFileName = saveFileDialog.FileName; try { Directory.CreateDirectory(Path.GetDirectoryName(jsonFileName)); File.WriteAllText(jsonFileName, json.ToString()); } catch (Exception e) { Logs.Add(LogViewModel.Error($"An error ocurred while trying to save the file ({e.Message}).")); } data.Global["json-path"] = jsonFileName; parser.WriteFile(IniPath, data); Logs.Add(LogViewModel.Log($"Json asset saved at {jsonFileName}!")); }
private void SaveJsonIntoTemplate(JObject json) { var saveFileDialog = new SaveFileDialog { InitialDirectory = Path.GetDirectoryName(data.Global["cpp-path"] ?? SpreadsheetPath), FileName = Path.GetFileName(data.Global["cpp-path"] ?? "CardData.cpp"), DefaultExt = ".cpp", Filter = "C++ File (*.cpp)|*.cpp" }; var result = saveFileDialog.ShowDialog(); if (result != true) { Logs.Add(LogViewModel.Warn("Operation canceled!")); return; } var fileName = saveFileDialog.FileName; string cardData; try { cardData = CreateCardDataCpp(json.ToString()); } catch (Exception e) { Logs.Add(LogViewModel.Error($"An error ocurred while trying to open the template file ({e.Message}).")); return; } try { Directory.CreateDirectory(Path.GetDirectoryName(fileName)); File.WriteAllText(fileName, cardData); } catch (Exception e) { Logs.Add(LogViewModel.Error($"An error ocurred while trying to save the file ({e.Message}).")); return; } data.Global["cpp-path"] = fileName; parser.WriteFile(IniPath, data); Logs.Add(LogViewModel.Log($"Asset saved at {fileName}!")); }
private JObject ParseSpreadsheet() { Logs.Add(LogViewModel.Log($"Opening {SpreadsheetPath}...")); // Read excel sheet and create json from here... if (!File.Exists(SpreadsheetPath)) { Logs.Add(LogViewModel.Error("Invalid path. Please choose a spreadsheet to parse.")); return(null); } ExcelPackage package; try { package = new ExcelPackage(new FileInfo(SpreadsheetPath)); } catch (System.Exception) { Logs.Add(LogViewModel.Error("Couldn't open file. Please make sure that the file " + "is not being blocked by another application.")); return(null); } var json = new JObject(); // parse cards tab by tab ParseSheet(json, "resources", package.Workbook.Worksheets["Resources"], ParseResources); ParseSheet(json, "events", package.Workbook.Worksheets["Events"], ParseEvents); ParseSheet(json, "communal_responsibilities", package.Workbook.Worksheets["CommunalResps"], ParseCommunalResponsibilities); ParseSheet(json, "family_responsibilities", package.Workbook.Worksheets["FamilyResps"], ParseFamilyResponsibilities); ParseSheet(json, "roles", package.Workbook.Worksheets["Roles"], ParseRoles); // close package package.Dispose(); return(json); }