コード例 #1
0
        /// The method only saves the project file, no related mlconfigs are saved.
        /// </summary>
        internal void Save( )
        {
            //access Data Pane in order to update data
            DataPanel expCtrl = getDataPanel();

            if (expCtrl == null)
            {
                return;
            }
            RichTextBox rtfCtrl = getRichCtrl();

            //get rich text to save content
            if (rtfCtrl != null)
            {
                saveRich(rtfCtrl);
            }


            //
            DataSet = expCtrl.GetDataSet();
            setCategoryEncoding(DataSet);
            if (Settings == null)
            {
                var prjPath = promptToSaveFile();
                Settings = new ProjectSettings();
                //
                var fi = new FileInfo(prjPath);
                Settings.ProjectFolder = fi.Directory.FullName + "\\" + Name;
                Settings.ProjectFile   = fi.Name;
            }
            //update setting info
            Settings.PrecentigeSplit = DataSet.IsPrecentige;
            //Settings.RandomizeData = DataSet.RandomizeData;
            Settings.ValidationSetCount = DataSet.TestRows;

            //load project information from file
            var prjPath1 = Path.Combine(Settings.ProjectFolder, Settings.ProjectFile);
            var dicData  = Project.LoadProjectData(prjPath1);


            //save raw data file in to project folder
            var rawDataName = Project.GetParameterValue(dicData["data"], "RawData");

            if (string.IsNullOrEmpty(rawDataName))
            {
                rawDataName = $"{Name}_rawdata.txt";//naming convention for the raw dataset
            }
            //create file of raw data
            var dataFile = Path.Combine(Settings.ProjectFolder, Name, rawDataName);

            writeRawData(dataFile, DataSet.Data);

            //update project file with information about raw dataset
            generateProjectFile(prjPath1, rawDataName);
        }