Exemple #1
0
        public void Initialize(string projectName, string projectDir, ModelCreationMode modelMode, string model)
        {
            ThreadPool.QueueUserWorkItem(o =>
            {
                OnInitialization();

                Guid id = Guid.NewGuid();

                this.projectDir = projectDir;
                Project         = new Project(projectName, id);
                Project.Save(projectDir);
                SaveProjectToSettings();

                tree = new ExperimentsTree(TreeFileName, id);

                bool pack = false;

                switch (modelMode)
                {
                case ModelCreationMode.cmCreateNew:

                    pack = DirectoryPacker.Pack(ModelDir, SnapshotDataFileName, id);

                    CreateModel(model);
                    break;

                case ModelCreationMode.cmClone:

                    pack = DirectoryPacker.Pack(model, SnapshotDataFileName, id);
                    if (pack)
                    {
                        DirectoryPacker.UnPack(ModelDir, SnapshotDataFileName, id);
                    }

                    LoadModel();
                    break;
                }

                Experiment.Create(id, ExperimentFileName, MakeBackup(id), pack);

                OnInitialized();
            });
        }
Exemple #2
0
        public void MakeSnapshot()
        {
            SaveModel();

            Guid snapshotId = LastSnapshotId;

            var  node = Tree.root.FindNode(snapshotId);
            Guid id   = node.AddNewChild();

            Tree.Save(TreeFileName);

            Experiment.Create(
                id,
                ExperimentFileName,
                MakeBackup(id),
                DirectoryPacker.Pack(ModelDir, SnapshotDataFileName, id));

            LastSnapshotId = id;

            SaveProject();
        }