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