Exemplo n.º 1
0
        /// <summary>
        /// 创建项目
        /// </summary>
        /// <param name="_chooseFolderPath">用户选择的路径</param>
        /// <param name="_projectName">项目的名字</param>
        /// <param name="_modeType">项目的模式</param>
        /// <returns>是否创建成功?</returns>
        public bool CreateProject(string _chooseFolderPath, string _projectName, ModeType _modeType)
        {
            try
            {
                /* 判断文件夹是否存在 */
                DirectoryInfo _directoryInfo = new DirectoryInfo(_chooseFolderPath);//文件夹的信息
                if (_directoryInfo.Exists == false)
                {
                    return(false);
                }



                /* 去除ProjectName中的非法字符:
                 *  文件夹和文件的 名字中,不能包含:? * : " < > \ / |
                 *  并且,不能以空格开头*/
                string _projectFileName = StringTool.RemoveInvaildChat(_projectName);

                /* 如果项目名为空格,或者是去除了违规字符后为空 */
                if (_projectFileName == null || _projectFileName == "")
                {
                    //设置新的文件名字
                    _projectFileName = "New Bugs";
                }

                /*判断是否有相同的文件夹*/
                //判断是否有相同的文件夹(返回值是一个唯一的文件夹【xxxx/文件夹 (1)/】)
                string _onlyFolderPath = FolderTool.AvoidSameFolder(_chooseFolderPath + "/" + _projectFileName);
                //取到文件夹的名字(这个文件夹不会和任何文件夹重名)
                DirectoryInfo _onlyFolderInfo = new DirectoryInfo(_onlyFolderPath);
                _projectFileName = _onlyFolderInfo.Name;



                /* Project数据 */
                //创建ProjectData对象
                ProjectData _projectData = new ProjectData();
                _projectData.Id       = DateTimeTool.DateTimeToLong(DateTime.UtcNow, TimeFormatType.YearMonthDayHourMinuteSecondMillisecond);
                _projectData.Name     = _projectName;
                _projectData.FileName = _projectFileName;
                _projectData.ModeType = _modeType;

                //修改ProjectData属性
                ProjectData = _projectData;

                //工程文件夹的路径
                ProjectFolderPath = _chooseFolderPath + "\\" + _projectFileName;



                /* 创建文件和文件夹 */
                //创建:[项目文件夹]、[Bug文件夹]、[记录文件夹]、[图片文件夹]、[备份文件夹]
                CreateFolders();
                //创建:[项目文件]、[Bug文件]
                CreateFiles();



                /* 保存Project数据 */
                bool _isSave = SaveProject();
                if (_isSave == false)
                {
                    return(false);
                }


                /* 打开协同合作功能 */
                AppManager.Systems.CollaborationSystem.Handle(true);


                return(true);
            }
            catch (Exception e)
            {
                //输出错误
                AppManager.Uis.ErrorUi.UiControl.TipContent = e.ToString();
                AppManager.Uis.ErrorUi.OpenOrClose(true);
                return(false);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 读取项目
        /// </summary>
        /// <param name="_projectFilePath">项目文件夹的路径(就是.bugs文件的路径)(如果为null,就代表使用当前的savePath属性+ProjectName属性)</param>
        /// <returns>是否读取成功?</returns>
        public bool LoadProject(string _projectFilePath = null)
        {
            try
            {
                /* 设置项目路径 */
                //如果参数为null
                if (_projectFilePath == null)
                {
                    _projectFilePath = ProjectFilePath;
                }


                /* 设置文件信息 */
                //FileInfo类 用于读取文件信息
                FileInfo _fileInfo = new FileInfo(_projectFilePath);

                /* 判断文件是否存在 */
                if (_fileInfo.Exists == false)//如果不存在
                {
                    return(false);
                }

                //如果文件存在,修改projectFolderPath属性
                ProjectFolderPath = _fileInfo.DirectoryName;
                string _fileName = Path.GetFileNameWithoutExtension(_fileInfo.FullName);



                /* 读取ProjectData */
                //读取[项目名.bugs]的Json文本中的内容
                string _projectJsonText = File.ReadAllText(_projectFilePath);

                //然后把Json文本解析成ProjectBaseData对象
                ProjectBaseData _projectBaseData = null;
                try
                {
                    _projectBaseData = JsonMapper.ToObject <ProjectBaseData>(_projectJsonText);
                }
                catch (Exception e)
                {
                }

                //判断是否是.bug文件(如果没有Bug的名字,就不打开这个项目,并报错)
                if (_projectBaseData == null || _projectBaseData.Name == null || _projectBaseData.Name == "")
                {
                }
                else
                {
                    //把ProjectBaseData对象,转化为ProjectData对象
                    ProjectData _projectData = ProjectBaseData.BaseDataToData(_projectBaseData);

                    //如果取到了数据
                    if (_projectData != null)
                    {
                        //赋值
                        _projectData.FileName = _fileName;
                        this.ProjectData      = _projectData;

                        //读取排序数据
                        AppManager.Systems.SortSystem.Load();


                        //创建文件夹和文件
                        CreateFolders();
                        CreateFiles();


                        /* 打开协同合作功能 */
                        AppManager.Systems.CollaborationSystem.Handle(true);


                        //返回值
                        return(true);
                    }
                }

                //返回值
                return(false);
            }
            catch (Exception e)
            {
                //输出错误
                AppManager.Uis.ErrorUi.UiControl.TipContent = e.ToString();
                AppManager.Uis.ErrorUi.OpenOrClose(true);
                return(false);
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// 清空[项目相关]的数据
 /// </summary>
 public void ClearProjectData()
 {
     ProjectData = new ProjectData();
     SortData    = new SortData();
     OtherData   = new OtherData();
 }