public IHttpActionResult PutScriptLayout(int id, ScriptLayout scriptLayout) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != scriptLayout.ScriptLayoutID) { return(BadRequest()); } db.Entry(scriptLayout).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!ScriptLayoutExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
/// <summary> /// create a function call: /// functionName(arguments) /// </summary> /// <param name="layout"></param> /// <param name="functionName"></param> /// <param name="arguments"></param> public JsCall(ScriptLayout layout, object functionName, JsArguments arguments) : base(layout) { FunctionName = functionName; Arguments = arguments; }
public IHttpActionResult GetScriptLayout(int id) { ScriptLayout scriptLayout = db.ScriptLayouts.Find(id); if (scriptLayout == null) { return(NotFound()); } return(Ok(scriptLayout)); }
public IHttpActionResult PostScriptLayout(ScriptLayout scriptLayout) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.ScriptLayouts.Add(scriptLayout); db.SaveChanges(); return(CreatedAtRoute("DefaultApi", new { id = scriptLayout.ScriptLayoutID }, scriptLayout)); }
public IHttpActionResult DeleteScriptLayout(int id) { ScriptLayout scriptLayout = db.ScriptLayouts.Find(id); if (scriptLayout == null) { return(NotFound()); } db.ScriptLayouts.Remove(scriptLayout); db.SaveChanges(); return(Ok(scriptLayout)); }
public string Render(Int32 id, ScreenViewer.Models.CriticalElements criticalelement, ControllerContext ContCont) { ScreenViewer.API.ScriptLayoutsController SC = new API.ScriptLayoutsController(); var actionResult = SC.GetScriptLayout(Convert.ToInt32(id)); var response = actionResult as OkNegotiatedContentResult <ScriptLayout>; if (response != null) { ScriptLayout SL = response.Content; string qincluded = ""; bool critItems = false; QuestionController QuestController = new QuestionController(); QuestionLayout questionLayout = null; List <ScriptLayoutE> ScriptLayouts = new List <ScriptLayoutE>(); foreach (ScriptLayoutDetail slitem in SL.ScriptLayoutDetails) { ScriptLayoutE layout = new ScriptLayoutE(); string aclass = ""; switch (slitem.ElementAlignment) { case "top-left": aclass = "div_top text-left"; break; case "top-center": aclass = "div_top text-center"; break; case "top-right": aclass = "div_top text-right"; break; case "middle-left": aclass = "div_middle text-left"; break; case "middle-center": aclass = "div_middle text-center"; break; case "middle-right": aclass = "div_middle text-right"; break; case "bottom-left": aclass = "div_bottom text-left"; break; case "bottom-center": aclass = "div_bottom text-center"; break; case "bottom-right": aclass = "div_bottom text-right"; break; default: aclass = "div_top text-left"; break; } layout.Scriptlayoutdetail = slitem; layout.AlignClass = aclass; if (slitem.ElementType == "Question") { qincluded = qincluded == "" ? slitem.ElementID.ToString() : qincluded + "," + slitem.ElementID.ToString(); if (criticalelement.CriticalItems) { if (criticalelement.CriticalQuestions.Contains(slitem.ElementID.ToString())) { layout.CriticalElement = true; } } } else if (slitem.ElementType == "OrderItem" && critItems) { layout.CriticalElement = true; } else { layout.CriticalElement = false; } switch (slitem.ElementType) { case "Question": questionLayout = QuestController.RenderQuestionParts((decimal)layout.Scriptlayoutdetail.ElementID, layout.CriticalElement, ContCont); questionLayout.QuestionHTML = questionLayout.QuestionHTML.Replace("\r", ""); questionLayout.QuestionHTML = questionLayout.QuestionHTML.Replace("\n", ""); questionLayout.QuestionHTML = questionLayout.QuestionHTML.Replace(@"""", @"\"""); questionLayout.QuestionHTML = questionLayout.QuestionHTML.Replace("</script>", string.Format("\" + {0} + \"", "unescape('%3C/script%3E')")); questionLayout.QuestionLabelText = questionLayout.QuestionLabelText.Replace("\r", ""); questionLayout.QuestionLabelText = questionLayout.QuestionLabelText.Replace("\n", ""); questionLayout.QuestionLabelText = questionLayout.QuestionLabelText.Replace(@"""", @"\"""); layout.QuestionLayout = questionLayout; break; case "TextHTML": TextHTMLController THC = new TextHTMLController(); layout.TextHTMLLayout = THC.Render(Convert.ToInt32(layout.Scriptlayoutdetail.ElementID), ContCont); layout.TextHTMLLayout = HttpUtility.HtmlDecode(layout.TextHTMLLayout); layout.TextHTMLLayout = layout.TextHTMLLayout.Replace("\r", ""); layout.TextHTMLLayout = layout.TextHTMLLayout.Replace("\n", ""); layout.TextHTMLLayout = layout.TextHTMLLayout.Replace(@"""", @"\"""); layout.TextHTMLLayout = layout.TextHTMLLayout.Replace(@"\\", @"\"); layout.TextHTMLLayout = layout.TextHTMLLayout.Replace("</script>", string.Format("\" + {0} + \"", "unescape('%3C/script%3E')")); layout.TextHTMLLayout = layout.TextHTMLLayout.Replace("'s", "'s"); break; case "Link": LinkController LC = new LinkController(); layout.LinkLayout = LC.Render(Convert.ToInt32(layout.Scriptlayoutdetail.ElementID), ContCont); layout.LinkLayout = layout.LinkLayout.Replace("\r", ""); layout.LinkLayout = layout.LinkLayout.Replace("\n", ""); layout.LinkLayout = layout.LinkLayout.Replace(@"""", @"\"""); layout.LinkLayout = layout.LinkLayout.Replace("</script>", string.Format("\" + {0} + \"", "unescape('%3C/script%3E')")); break; } ScriptLayouts.Add(layout); } List <ScriptLayoutE> orderedLayout = ScriptLayouts.OrderBy(o => o.Scriptlayoutdetail.RowNumber).ThenBy(o => o.Scriptlayoutdetail.Sequence).ToList(); ViewBag.QuestionList = qincluded; return(RenderHelper.RenderViewToString(ContCont, "~/Views/ScriptLayout/_ScriptLayout.cshtml", orderedLayout, ViewData)); } else { return(""); } }
/// <summary> /// Create an empty item using a custom layout /// </summary> /// <param name="layout">override the default layout</param> public ScriptIndent(ScriptLayout layout) : base(layout) { }
/// <summary> /// An item that lets you wrap objects before and/or after another item /// Useful to create effects like surrounding brackets /// </summary> /// <param name="layout">override the default layout</param> /// <param name="before">object to render before the item</param> /// <param name="item">the item to render</param> /// <param name="after">object to render after the item</param> /// <returns></returns> public static ScriptWrapper Wrapper(ScriptLayout layout, object before, IScriptItem item, object after) { return new ScriptWrapper(layout, before, item, after); }
/// <summary> /// A collection of objects which will each be rendered on a new line /// </summary> /// <param name="layout">override the default layout</param> /// <param name="lines">collection of objects to render</param> /// <returns></returns> public static Script Script(ScriptLayout layout, params object[] lines) { return new Script(layout, lines); }
/// <summary> /// Create a parameter list /// (param, param, param) /// </summary> /// <param name="layout"></param> /// <param name="list"></param> public JsParameters(ScriptLayout layout, JsList list) : base(layout) { List = list; }
/// <summary> /// Create an item using a custom layout from a collection of objects /// </summary> /// <param name="layout">override the default layout</param> /// <param name="lines">collection of objects</param> public ScriptLine(ScriptLayout layout, IEnumerable<object> lines) : base(layout, lines) { }
/// <summary> /// Create an empty parameter list /// () /// </summary> /// <param name="layout"></param> public JsParameters(ScriptLayout layout) : base(layout) { List = new JsList(); }
/// <summary> /// Renders function syntax: /// function(param, param) { scriptBlock } /// </summary> /// <param name="layout"></param> /// <param name="parameters"></param> /// <param name="scriptBlock"></param> /// <returns></returns> public static JsFunction Function(ScriptLayout layout, JsParameters parameters, JsBlock scriptBlock) { return new JsFunction(layout, parameters, scriptBlock); }
/// <summary> /// Renders function call syntax: /// functionName(arg, arg) /// </summary> /// <param name="layout"></param> /// <param name="functionName"></param> /// <param name="args"></param> /// <returns></returns> public static JsCall Call(ScriptLayout layout, object functionName, params object[] args) { return new JsCall(layout, functionName, args); }
/// <summary> /// Renders array syntax: /// [item, item, item] /// </summary> /// <param name="layout"></param> /// <param name="list"></param> /// <returns></returns> public static JsArray Array(ScriptLayout layout, JsList list) { return new JsArray(layout, list); }
/// <summary> /// Renders function syntax: /// function() { lines } /// </summary> /// <param name="layout"></param> /// <param name="lines"></param> /// <returns></returns> public static JsFunction Function(ScriptLayout layout, params object[] lines) { return new JsFunction(layout, lines); }
/// <summary> /// Renders function syntax: /// function name(param, param) { lines } /// </summary> /// <param name="layout"></param> /// <param name="name"></param> /// <param name="parameters"></param> /// <param name="lines"></param> /// <returns></returns> public static JsFunction Function(ScriptLayout layout, object name, JsParameters parameters, params object[] lines) { return new JsFunction(layout, name, parameters, lines); }
/// <summary> /// Renders function syntax: /// function() { scriptBlock } /// </summary> /// <param name="layout"></param> /// <param name="scriptBlock"></param> /// <returns></returns> public static JsFunction Function(ScriptLayout layout, JsBlock scriptBlock) { return new JsFunction(layout, scriptBlock); }
/// <summary> /// Renders array syntax: /// [item, item, item] /// </summary> /// <param name="layout"></param> /// <param name="list"></param> /// <returns></returns> public static JsArray Array(ScriptLayout layout, params object[] list) { return new JsArray(layout, list); }
/// <summary> /// Create a parameter list /// (param, param, param) /// </summary> /// <param name="layout"></param> /// <param name="items"></param> public JsParameters(ScriptLayout layout, params object[] items) : base(layout) { List = new JsList(items); }
/// <summary> /// Renders function call syntax: /// functionName(arg, arg) /// </summary> /// <param name="layout"></param> /// <param name="functionName"></param> /// <param name="arguments"></param> /// <returns></returns> public static JsCall Call(ScriptLayout layout, object functionName, JsArguments arguments) { return new JsCall(layout, functionName, arguments); }
/// <summary> /// Renders block syntax: /// { /// line /// line /// line /// } /// </summary> /// <param name="layout"></param> /// <param name="lines"></param> /// <returns></returns> public static JsBlock Block(ScriptLayout layout, params object[] lines) { return new JsBlock(layout, lines); }
/// <summary> /// Renders list syntax: /// item, item, item /// </summary> /// <param name="layout"></param> /// <param name="items"></param> /// <returns></returns> public static JsList List(ScriptLayout layout, params object[] items) { return new JsList(layout, items); }
/// <summary> /// Renders statement syntax (concat items and add a semicolon): /// items; /// </summary> /// <param name="layout"></param> /// <param name="items"></param> /// <returns></returns> public static JsStatement Statement(ScriptLayout layout, params object[] items) { return new JsStatement(layout, items); }
/// <summary> /// Create a parameter list /// (param, param, param) /// </summary> /// <param name="layout"></param> /// <param name="items"></param> public JsParameters(ScriptLayout layout, IEnumerable<object> items) : base(layout) { List = new JsList(items); }
/// <summary> /// Renders parameter syntax: /// (param, param, param) /// </summary> /// <param name="layout"></param> /// <param name="parameters"></param> /// <returns></returns> public static JsParameters Parameters(ScriptLayout layout, params object[] parameters) { return new JsParameters(layout, parameters); }
/// <summary> /// base the layout of the parameter list on our layout /// </summary> /// <param name="e"></param> protected override void OnLayoutChanged(LayoutChangedEventArgs e) { base.OnLayoutChanged(e); ScriptLayout layout = e.Layout; switch (layout) { case ScriptLayout.None: break; case ScriptLayout.NotAlreadyEstablished: break; case ScriptLayout.Default: break; case ScriptLayout.Inline: ListLayout = ScriptLayout.Inline; break; case ScriptLayout.InlineBlock: ListLayout = ScriptLayout.Block; break; case ScriptLayout.Block: ListLayout = ScriptLayout.Block; break; default: break; } }
/// <summary> /// Renders parameter syntax: /// (param, param, param) /// </summary> /// <param name="layout"></param> /// <param name="parameters"></param> /// <returns></returns> public static JsParameters Parameters(ScriptLayout layout, JsList parameters) { return new JsParameters(layout, parameters); }
/// <summary> /// Create an empty item using a custom layout /// </summary> /// <param name="layout">override the default layout</param> public ScriptLine(ScriptLayout layout) : base(layout) { }
/// <summary> /// Renders argument syntax: /// (arg, arg, arg) /// </summary> /// <param name="layout"></param> /// <param name="args"></param> /// <returns></returns> public static JsArguments Arguments(ScriptLayout layout, params object[] args) { return new JsArguments(layout, args); }
/// <summary> /// Create an item using a custom layout from parameters /// </summary> /// <param name="layout">override the default layout</param> /// <param name="lines">set of paramters</param> public ScriptLine(ScriptLayout layout, params object[] lines) : base(layout, lines) { }
/// <summary> /// Renders argument syntax: /// (arg, arg, arg) /// </summary> /// <param name="layout"></param> /// <param name="args"></param> /// <returns></returns> public static JsArguments Arguments(ScriptLayout layout, JsList args) { return new JsArguments(layout, args); }
/// <summary> /// Helper to try and set a layout for an item /// First checks if the sent object is an IScriptItem /// </summary> /// <param name="item">object to check</param> /// <param name="layout">preferred layout</param> public static void TrySetLayout(object item, ScriptLayout layout) { ScriptItem.ObjectTrySetLayout(item, layout); }
/// <summary> /// Renders if syntax: /// if (condition) { trueItem } /// </summary> /// <param name="layout"></param> /// <param name="condition"></param> /// <param name="trueItem"></param> /// <returns></returns> public static JsIf If(ScriptLayout layout, object condition, object trueItem) { return new JsIf(layout, condition, trueItem); }
/// <summary> /// A collection of objects which will each be rendered on a single line /// They will be concatinated together /// </summary> /// <param name="layout">override the default layout</param> /// <param name="parts">the objects to be concatinated</param> /// <returns></returns> public static ScriptLine Line(ScriptLayout layout, params object[] parts) { return new ScriptLine(layout, parts); }
public void Write(IWriter writer, StringIDSource stringIDs, int parameterCount, uint parameterAddress, ScriptLayout layout) { if (layout == ScriptLayout.HaloReach) { writer.WriteUInt32(stringIDs.FindOrAddStringID(Name).Value); } else { writer.WriteAscii(Name, 0x20); } writer.WriteInt16(ExecutionType); writer.WriteInt16(ReturnType); writer.WriteUInt32(RootExpressionIndex.Value); writer.WriteInt32(parameterCount); writer.WriteUInt32(parameterAddress); writer.WriteUInt32(0); }