コード例 #1
0
        public void Resolve(Dictionary <string, JsFile> dic)
        {
            if (this.ImportStatus != JsFileImportStatus.ImportNone)
            {
                this.ImportStatus = JsFileImportStatus.ImportComplete;
                return;
            }
            this.ImportStatus = JsFileImportStatus.Importing;
            foreach (var im in this.ImportStrings)
            {
                //##############
                //var tmpFileFullName = GetJsFileAbsFullName(this.FilePath + im);
                //if (dic.ContainsKey(tmpFileFullName))
                //{
                //    var tmpFile = dic[tmpFileFullName];
                //    if (tmpFile.ImportStatus == JsFileImportStatus.Importing)
                //    {//在前面正在导入中了
                //        tmpFile.ImportStatus = JsFileImportStatus.ImportComplete;
                //        this.Imports.Add(tmpFile);
                //    }
                //    else if (tmpFile.ImportStatus == JsFileImportStatus.ImportComplete)
                //    {//之前已经导入完成了
                //        this.Imports.Add(tmpFile);
                //    }
                //}
                //else
                //{
                //    var tmpFile = GetJsFile(tmpFileFullName, dic);
                //}

                //##############
                try
                {
                    var tmpFile = GetJsFile(this.FilePath + im, dic, im);
                    if (tmpFile.ImportStatus == JsFileImportStatus.ImportNone)
                    {//刚刚拿到的新文件
                        //tmpFile.ImportStatus = JsFileImportStatus.Importing;
                        this.Imports.Add(new ImportStruct(tmpFile, JsFileImportStatus.ImportNone));
                    }
                    else if (tmpFile.ImportStatus == JsFileImportStatus.Importing)
                    {//在前面正在导入中了
                        //tmpFile.ImportStatus = JsFileImportStatus.ImportComplete;
                        this.Imports.Add(new ImportStruct(tmpFile, JsFileImportStatus.Importing));
                    }
                    else if (tmpFile.ImportStatus == JsFileImportStatus.ImportComplete)
                    {//之前已经导入完成了
                        this.Imports.Add(new ImportStruct(tmpFile, JsFileImportStatus.ImportComplete));
                    }
                    tmpFile.Resolve(dic);
                }
                catch (Exception e)
                {
                    continue;
                }
            }
            this.ImportStatus = JsFileImportStatus.ImportComplete;
        }
コード例 #2
0
        public string ToJson(JsFileImportStatus status, bool recursive = true)
        {
            var dic = Common.NewDictionary();

            dic.Add("ResolveAbsPath", this.ResolveAbsPath.Replace(@"\", @"/"));
            dic.Add("FileImportStr", this.FileImportStr);
            dic.Add("ImportStatus", status);
            if (recursive)
            {
                dic.Add("Imports", this.Imports.Select(a =>
                {
                    return(Common.JsonToDictionary(a.File.ToJson(a.FileStatus, a.FileStatus == JsFileImportStatus.ImportNone)));
                }).ToList());
            }
            return(dic.ToJsonString());
        }