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; }
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()); }