Пример #1
0
        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}!"));
        }
Пример #2
0
        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}!"));
        }
Пример #3
0
        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);
        }