예제 #1
0
        /// <summary>
        /// Create a project.
        /// </summary>
        /// <param name="location">Location for project.</param>
        /// <param name="name">Name of project.</param>
        public void Create(string location, string name)
        {
            this.Location = location;
            this.Name     = name;
            string path = PyTools.CreatePath(location, name);

            directory = Directory.CreateDirectory(path);
        }
예제 #2
0
        /// <summary>
        /// Execute a project.
        /// </summary>
        /// <param name="uid">Id for project.</param>
        /// <param name="fileDM">File domain model.</param>
        public static void Execute(Guid uid, PythonFileDM fileDM)
        {
            PyProject project = projects[uid];

            project.Create(SERVER_LOCATION, "fiddle" + uid);
            var location = PyTools.CreatePath(SERVER_LOCATION, "fiddle" + uid);
            var file     = new PyFile(fileDM.ID, location, fileDM.Name, fileDM.SourceCode);

            project.AddFile(file);
            project.StartUpFileID = file.ID;
            project.Run();
        }
예제 #3
0
        /// <summary>
        /// Execute a project.
        /// </summary>
        /// <param name="uid">Id for project.</param>
        /// <param name="fileDM">File domain model.</param>
        public static void Execute(Guid uid, PythonProjectDM projectDM)
        {
            PyProject project = projects[uid];

            project.Create(SERVER_LOCATION, projectDM.ID.ToString());
            var location = PyTools.CreatePath(SERVER_LOCATION, projectDM.ID.ToString());

            projectDM.Files.ForEach((fileDM) =>
            {
                var file = new PyFile(fileDM.ID, location, fileDM.Name, fileDM.SourceCode);
                project.AddFile(file);
                if (projectDM.StartFileName == fileDM.Name)
                {
                    project.StartUpFileID = fileDM.ID;
                }
            });
            project.Run();
        }
예제 #4
0
파일: PyFile.cs 프로젝트: theCstokes/spann
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="id">Id for file.</param>
        /// <param name="location">Location for file.</param>
        /// <param name="name">Name of file.</param>
        /// <param name="data">Data in file.</param>
        public PyFile(int id, string location, string name, string data = null)
        {
            this.ID       = id;
            this.Location = location;
            this.Name     = name;
            if (!Directory.Exists(location))
            {
                Directory.CreateDirectory(location);
            }

            string path = PyTools.CreatePath(location, name);

            file = new FileInfo(path);
            using (var fs = file.Create())
            {
                if (data != null)
                {
                    Byte[] info = new UTF8Encoding(true).GetBytes(data);
                    fs.Write(info, 0, info.Length);
                }
            }
        }