Beispiel #1
0
 //*********** COURSE_build
 public static void COURSE_build(BuildIds buildId, IEnumerable<Langs> locs, dictTypes dictType = dictTypes.no) {
   runTask("COURSE_build", () => {
     Trace.TraceWarning("BuildId: {0}, locs: {1}, dictType: {2}", buildId, locs.Join(), dictType);
     LoggerMemory log = new LoggerMemory(true);
     try {
       CourseMeta.Lib.init(log, @"d:\lmcom\", false);
       if (!log.hasError) {
         //vytvoreni WebDataBatch, vse je pripraveno nahradit DATA-{0}.xml pouhymi seznamy produkt IDS
         var productIds = File.ReadAllLines(string.Format(@"D:\LMCom\rew\DeployGUI\Web4CourseProducts\{0}.txt", buildId));
         Trace.TraceWarning("Start build {0} products", productIds.Length);
         var batch = new WebDataBatch { dictType = dictType, locs = locs.ToArray(), products = productIds.Select(id => new BatchProduct { id = id }).ToArray() };
         WebDataBatch.FinishAfterLoad(batch);
         //seznam souboru, v product adresari jsou metainformace o produktech, v envelope jsou aktualizovane informace.
         var files = batch.getWebBatchFilesNew(buildId, log, @"d:\LMCom\rew\Web4\products\");
         buildLib.writeVirtualFiles(buildId, files);
       }
     } catch (Exception exp) {
       log.ErrorLine("Exception", LowUtils.ExceptionToString(exp));
     }
     return log.hasError ? log.Log() : null;
   });
 }
Beispiel #2
0
 void EditBtn_Click(object sender, EventArgs e) {
   if (comboEdit.SelectedItem == null) return;
   var tpObj = typeObj.itemsDict[((typeObj)comboEdit.SelectedItem).value];
   LoggerMemory log = new LoggerMemory(false);
   var isEditable = (tpObj.value == oldeaDataType.lmdataNew && File.Exists(fileEx.fileName(oldeaDataType.lmdataNew))) || tpObj.editable;
   if (isEditable) {
     var cont = fileEx.getFileContentLow(tpObj.value, log) as string; if (cont == null) return;
     if (cont[0] != '@') {
       var fn = tempDir + fileEx.tempFileName(tpObj.value);
       File.WriteAllText(fn, log.hasError ? log.Log() : cont, Encoding.UTF8);
       openInVSNet(fn);
     } else
       openInVSNet(cont.Substring(1));
   } else {
     var cont = fileEx.getFileContentString(tpObj.value, log);
     var fn = tempDir + fileEx.tempFileName(tpObj.value);
     File.WriteAllText(fn, log.hasError ? log.Log() : cont, Encoding.UTF8);
     openInVSNet(fn);
   }
 }
Beispiel #3
0
 public static string checkAllError() {
   LoggerMemory log = new LoggerMemory(true);
   CourseMeta.Lib.init(log, Machines.basicPath ?? @"d:\lmcom\", true); //RENAME
   var exs = validDirs.SelectMany(d => CourseMeta.Lib.publishers.find(d).scan().Where(dt => (dt.type & (runtimeType.ex | runtimeType.error | runtimeType.mediaCutFile)) != 0)).ToArray();
   Parallel.ForEach(exs, ex => ex.readTag(log));
   //foreach (var ex in exs) ex.readTag(log);
   var error = log.Log();
   return string.IsNullOrEmpty(error) ? ">>>>>>>>>>>>>>> ALL OK :-)" : error;
 }
Beispiel #4
0
 public static CmdXrefDataResult getXrefData(CmdXrefData par) {
   var url = string.IsNullOrEmpty(par.urlContext) ? "" : par.urlContext.ToLower();
   bool doRefresh = par.oper == CmdXrefDataOpers.refreshXref;
   XrefContext actCtx;
   string error = null;
   if (doRefresh || !allUrlContexts.TryGetValue(url, out actCtx)) {
     actCtx = new XrefContext();
     LoggerMemory err = new LoggerMemory(true);
     actCtx.adjustXrefData(url == "" ? null : url, doRefresh, err);
     error = err.Log().Replace("\r\n", "<br/>");
     allUrlContexts[url] = actCtx;
   }
   //lib.init();
   switch (par.oper) {
     case CmdXrefDataOpers.nodeTypes: return new CmdXrefDataResult { error = error, names = actCtx.nodeTypes(par.nodeId).ToArray() };
     case CmdXrefDataOpers.typeProps: return new CmdXrefDataResult { error = error, names = actCtx.typeProps(par.type, par.nodeId).ToArray() };
     case CmdXrefDataOpers.typePropValues: return new CmdXrefDataResult { error = error, names = actCtx.typePropValues(par.type, par.prop, par.nodeId).ToArray() };
     case CmdXrefDataOpers.typeLinks: return new CmdXrefDataResult { error = error, links = actCtx.typeLinks(par.type, par.nodeId, par.maxLinks).ToArray() };
     case CmdXrefDataOpers.typePropLinks: return new CmdXrefDataResult { error = error, links = actCtx.typePropLinks(par.type, par.prop, par.nodeId, par.maxLinks).ToArray() };
     case CmdXrefDataOpers.typePropValueLinks: return new CmdXrefDataResult { error = error, links = actCtx.typePropValueLinks(par.type, par.prop, par.value, par.nodeId, par.maxLinks).ToArray() };
     case CmdXrefDataOpers.nodeProps: return new CmdXrefDataResult { error = error, names = actCtx.nodeProps(par.nodeId).ToArray() };
     case CmdXrefDataOpers.propValues: return new CmdXrefDataResult { error = error, names = actCtx.propValues(par.prop, par.nodeId).ToArray() };
     case CmdXrefDataOpers.propLinks: return new CmdXrefDataResult { error = error, links = actCtx.propLinks(par.prop, par.nodeId, par.maxLinks).ToArray() };
     case CmdXrefDataOpers.propValueLinks: return new CmdXrefDataResult { error = error, links = actCtx.propValueLinks(par.prop, par.value, par.nodeId, par.maxLinks).ToArray() };
     case CmdXrefDataOpers.refreshXref: return new CmdXrefDataResult { error = error };
     case CmdXrefDataOpers.checkAll: return new CmdXrefDataResult { error = checkAllError() };
     default: throw new NotImplementedException();
   }
 }
Beispiel #5
0
 static void saveLog(LoggerMemory lg3, string name, bool waitMsg = true) {
   var fn = string.Format(@"d:\LMCom\rew\Web4\Data\buildLogs\{0}.log", name);
   if (File.Exists(fn)) File.Delete(fn);
   if (lg3.hasError) {
     File.WriteAllText(fn, lg3.Log());
     Console.WriteLine("*** Error in " + fn);
   } else {
     Console.WriteLine("Build OK");
   }
   if (waitMsg) {
     Console.WriteLine("Press any key to continue");
     Console.ReadKey();
   }
 }
Beispiel #6
0
 public string authorGetExJsonML(string url) {
   var log = new LoggerMemory(true) { isVsNet = true };
   var pages = vsNetServer.buildExFiles(url, log).ToArray();
   if (log.hasError) throw new Exception(log.Log());
   return CourseMeta.buildLib.getBlendedScript(pages);
 }
Beispiel #7
0
    protected void oldEA_Click(object sender, EventArgs e) {
      string url = normalizeUrl(urlTxt.Text);
      LoggerMemory log = new LoggerMemory(true);
      CourseMeta.Lib.dataFromEA(url, log);
      if (log.hasError) { writeTxt(log.Log()); return; }

      if (url.EndsWith("/"))
        Response.Redirect("author.aspx?forceEval=true&mode=displayMod&url=" + url);
      else
        Response.Redirect("author.aspx?forceEval=true&mode=displayEx&url=" + url);
    }
Beispiel #8
0
    protected void Page_Load(object sender, EventArgs e) {

      //SchemaDefinition.ModifyXsd.modify();
      //defaults:
      var mode = Request["mode"];
      if (string.IsNullOrEmpty(mode)) {
        if (!IsPostBack) {
          htmlPlace.Visible = true; contentPlace.Visible = false;
          var cook = Request.Cookies.Get("author");
          if (cook != null) urlTxt.Text = cook.Value;
        }
        return;
      }
      var target = LMComLib.Targets.web;
      schools.persistTypes persistType = schools.persistTypes.persistNewEA;
      string startProcName = null;
      string rootProductId = null;
      bool forceEval = false;
      bool humanEvalMode = false;
      string hash = null;
      var reqStr = new StreamReader(Request.InputStream);
      string serverScript = reqStr.ReadToEnd();
      string errorText = null;
      var log = new LoggerMemory(true) { isVsNet = true };
      var url = Request["url"].ToLower(); var rootDir = Request["rootDir"] ?? "".ToLower();
      switch (LowUtils.EnumParse<authorModes>(mode)) {
        case authorModes.displayEx:
          target = LMComLib.Targets.author;
          persistType = schools.persistTypes.persistMemory;
          forceEval = (Request["forceEval"] ?? "").ToLower() == "true";
          humanEvalMode = (Request["humanEvalMode"] ?? "").ToLower() == "true";
          hash = "#" + XExtension.Create("vsNet".ToLower(), "vsNetExModel".ToLower(), url).Aggregate((r, i) => r + "@" + i);
          //old to new
          CourseMeta.oldeaDataType oldEaType = LowUtils.EnumParse<CourseMeta.oldeaDataType>(Request["oldEaType"] ?? CourseMeta.oldeaDataType.xml.ToString());
          //LM16 if (oldEaType != CourseMeta.oldeaDataType.xml) serverScript = OldToNew.exFile.getServerScript(url, oldEaType, log);
          //no server script
          if (string.IsNullOrEmpty(serverScript)) {
            serverScript = CourseMeta.buildLib.getServerScript(vsNetServer.buildExFiles(url, log)).ToString();
            errorText = log.hasError ? log.Log() : null;
          } // xml se strankou
          else {
            //preved XML se strankou => server script
            serverScript = CourseMeta.buildLib.getServerScript(vsNetServer.buildExFiles(new MemoryStream(Encoding.UTF8.GetBytes(serverScript)), url, log)).ToString();
            errorText = log.hasError ? log.Log() : null;
          }
          if (errorText != null) { Response.Clear(); Response.Write(errorText.Replace("\r", "<br/>")); Response.End(); }
          break;
        case authorModes.displayMod:
          target = LMComLib.Targets.author;
          persistType = schools.persistTypes.persistMemory;
          forceEval = (Request["forceEval"] ?? "").ToLower() == "true";
          humanEvalMode = (Request["humanEvalMode"] ?? "").ToLower() == "true";

          if (string.IsNullOrEmpty(serverScript)) {
            if (!string.IsNullOrEmpty(rootDir)) {
              Machines._dataDir = Machines.dataDir;
              Machines._rootDir = rootDir;
            }
            serverScript = CourseMeta.buildLib.getServerScript(vsNetServer.getModuleFiles(new vsNetServer.serverContext(url, log), null, log)).ToString();
            rootProductId = Author.vsNetServer.vsNetProductId;
            errorText = log.hasError ? log.Log() : null;
          } else {
            if (serverScript.StartsWith("###")) { errorText = serverScript.Substring(3); serverScript = null; }
            rootProductId = Request["rootProductId"];
          }
          if (errorText != null) { Response.Clear(); Response.Write(errorText.Replace("\r", "<br/>")); Response.End(); }

          //var fn2 = Machines.rootDir + url.Replace('/', '\\') + "meta.xml";
          //var log2 = new LoggerMemory(true);
          //if (string.IsNullOrEmpty(sourceXml)) sourceXml = CourseMeta.buildLib.getServerScript(CourseMeta.vsNetServer.buildModFiles(url, out rootProductId, log2));
          //if (log2.hasError) { Response.Clear(); Response.Write(log2.Log().Replace("\r", "<br/>")); Response.End(); }
          break;
        case authorModes.xref:
          startProcName = "xref.Start";
          hash = "#" + XExtension.Create("xref".ToLower(), "xrefbrowsemodel".ToLower()).Aggregate((r, i) => r + "@" + i);
          Author.XrefContext.adjustXrefSitemap(new LoggerMemory(true));

          if (string.IsNullOrEmpty(serverScript)) serverScript =
            CourseMeta.buildLib.getServerScript("/author/xrefsitemap.js", File.ReadAllText(Machines.rootPath + @"Author\xrefSitemap.js")) +
            CourseMeta.buildLib.getServerScript("/author/doc.js", CourseModel.doc.mapWithDoc());
          break;
        case authorModes.doc:
          if (string.IsNullOrEmpty(serverScript)) serverScript = CourseMeta.buildLib.getServerScript("/author/doc.js", CourseModel.doc.mapWithDoc());
          hash = "#" + XExtension.Create("doc".ToLower(), "doctypesModel".ToLower()/*, "/author/doc"*/).Aggregate((r, i) => r + "@" + i);
          startProcName = "doc.Start";
          break;
        case authorModes.compileEx:
          var url4 = Request["url"].ToLower();
          Response.ClearContent();
          var log5 = new LoggerMemory(true);
          Response.Write(CourseMeta.buildLib.getResponseScript(vsNetServer.buildExFiles(url4, log5)));
          if (log5.hasError) { Response.Clear(); Response.Write(log5.Log().Replace("\r", "<br/>")); Response.End(); }
          Response.End();
          break;
      }
      var pageContent = Packager.RewApp.HomePage(new Packager.Config() {
        target = target,
        version = schools.versions.debug,
        startProcName = startProcName,
        lang = LMComLib.Langs.en_gb,
        persistType = persistType,
        rootProductId = rootProductId,
        hash = hash,
        forceEval = forceEval,
        humanEvalMode = humanEvalMode,
      }, serverScript);
      contentPlace.Controls.Add(new LiteralControl(pageContent));
    }
Beispiel #9
0
    protected void dumpXml_Click(object sender, EventArgs e) {
      string url = normalizeUrl(urlTxt.Text);
      if (url.EndsWith("/") || url.EndsWith("\\")) return;

      var logger = new LoggerMemory(true) { saveDumpXml = true };
      var page = CourseMeta.ex.readPage(url.Trim(), logger);

      if (logger.hasError) logger.dumpXml.AddFirst(new XCData(logger.Log()));

      Response.Clear();
      Response.ContentType = "text/xml";
      Response.Charset = "utf-8";
      Response.Write(logger.dumpXml.ToString());
      Response.Flush();
      Response.End();
    }