public void ProcessRequest(IAsyncResult result) { Debug.WriteLine("write"); HttpListenerContext context = _listener.EndGetContext(result); HttpListenerRequest request = context.Request; //Answer getCommand/get post data/do whatever string postData; using (var reader = new StreamReader(request.InputStream, request.ContentEncoding)) { postData = reader.ReadToEnd(); byte[] array = Convert.FromBase64String(postData); string s = Encoding.Default.GetString(array); string[] chromeData = s.Split(','); ChromeData data = new ChromeData(chromeData[0], int.Parse(chromeData[1]), chromeData[2], chromeData[3], chromeData[4], int.Parse(chromeData[5])); UpdateData(data); } _listener.Close(); _listener = new HttpListener(); _listener.Prefixes.Add("http://localhost:12000/"); _listener.Start(); _listener.BeginGetContext(new AsyncCallback(ProcessRequest), this._listener); }
private void UpdateData(ChromeData data) { Application.Current.Dispatcher.Invoke(() => { mts.ChromeData = data; }); }
/// <summary> /// Renders the page design mode. /// </summary> /// <param name="output">The output.</param> private void RenderPlaceholderPageDesignMode(HtmlTextWriter output) { Assert.ArgumentNotNull((object)output, "output"); bool flag = true; if (!this.CanDesign(Sitecore.Context.Database) || !Policy.IsAllowed("Page Editor/Can Design")) { flag = false; } Item contextItem = this.GetContextItem(); if (contextItem != null && !WebEditUtil.CanDesignItem(contextItem)) { flag = false; } string qualifiedKey = this.GetQualifiedKey(); Item obj = this.GetItem(); GetChromeDataArgs args = obj != null ? new GetChromeDataArgs("placeholder", obj) : new GetChromeDataArgs("placeholder"); args.CustomData["placeHolderKey"] = (object)qualifiedKey; GetChromeDataPipeline.Run(args); ChromeData chromeData = args.ChromeData; string startMarker = Placeholder72.GetStartMarker(qualifiedKey, chromeData, flag); output.Write(startMarker); for (int index = 0; index < this.Controls.Count; ++index) { Control control = this.Controls[index]; this.RenderControlPageDesignMode(output, flag, control); } string endMarker = Placeholder72.GetEndMarker(chromeData); output.Write(endMarker); }
/// <summary> /// Renders the control page design mode. /// /// </summary> /// <param name="output">The output.</param><param name="isDesignAllowed">if set to <c>true</c> [is design allowed].</param><param name="control">The control.</param> private void RenderControlPageDesignMode(HtmlTextWriter output, bool isDesignAllowed, Control control) { Assert.ArgumentNotNull((object)output, "output"); Assert.ArgumentNotNull((object)control, "control"); RenderingReference renderingReference = Client.Page.GetRenderingReference(control); bool flag = false; if (renderingReference != null) { string uniqueId = renderingReference.UniqueId; if (Sitecore.Data.ID.IsID(uniqueId)) { string controlId = ShortID.Encode(uniqueId); Item obj = this.GetItem(); Assert.IsNotNull((object)obj, "item"); ChromeData controlData = Placeholder72.GetControlData(renderingReference, obj); output.Write(Placeholder72.GetControlStartMarker(controlId, controlData, isDesignAllowed)); control.RenderControl(output); output.Write(Placeholder72.GetControlEndMarker(controlData)); flag = true; } } if (flag) { return; } control.RenderControl(output); }
/// <summary> /// Gets the start marker. /// /// </summary> /// <param name="placeholderKey">The placeholder key.</param><param name="data">The data.</param><param name="selectable">if set to <c>true</c> [selectable].</param> /// <returns> /// The start marker. /// </returns> public static string GetStartMarker(string placeholderKey, ChromeData data, bool selectable) { Assert.ArgumentNotNull((object)placeholderKey, "placeholderKey"); Assert.ArgumentNotNull((object)data, "data"); StringBuilder stringBuilder = new StringBuilder(); string str = Placeholder72.EscapeNonWordCharacters(placeholderKey); stringBuilder.AppendFormat("<code type='text/sitecore' chromeType='placeholder' kind='open' id='{0}' key='{1}' class='scpm' data-selectable='{2}'>", (object)str, (object)placeholderKey, (object)MainUtil.BoolToString(selectable)); stringBuilder.Append(data.ToJson()); stringBuilder.Append("</code>"); return(((object)stringBuilder).ToString()); }
/// <summary> /// Renders the control start marker. /// /// </summary> /// <param name="controlId">The control id.</param><param name="data">The data.</param><param name="selectable">Defines wheter element is selectable in</param> /// <returns> /// HTML that precedes the control in page editing mode. /// /// </returns> public static string GetControlStartMarker(string controlId, ChromeData data, bool selectable) { Assert.ArgumentNotNull((object)controlId, "controlId"); Assert.ArgumentNotNull((object)data, "data"); StringBuilder stringBuilder = new StringBuilder(); string str1 = Placeholder72.SanitizeAttribute(data.DisplayName); string str2 = data.ToJson(); stringBuilder.Append(StringExtensions.FormatWith("<code type='text/sitecore' chromeType='rendering' kind='open' hintName='{0}' id='r_{1}' class='scpm' data-selectable='{2}'>", (object)str1, (object)controlId, (object)MainUtil.BoolToString(selectable))); stringBuilder.Append(str2); stringBuilder.Append("</code>"); return(((object)stringBuilder).ToString()); }
/// <summary> /// Gets the end market. /// /// </summary> /// <param name="data">The data.</param> /// <returns> /// The end marker. /// </returns> public static string GetEndMarker(ChromeData data) { string str = string.Empty; if (data != null) { str = Placeholder72.SanitizeAttribute(data.DisplayName); } return(StringExtensions.FormatWith("<code type='text/sitecore' chromeType='placeholder' kind='close' hintName='{0}' class='scpm'></code>", new object[1] { (object)str })); }
/// <summary> /// Renders the control start marker. /// /// </summary> /// <param name="controlId">The control id.</param><param name="data">The data.</param> /// <returns> /// The control start marker. /// </returns> public static string GetControlStartMarker(string controlId, ChromeData data) { Assert.ArgumentNotNull((object)controlId, "controlId"); Assert.ArgumentNotNull((object)data, "data"); return(Placeholder72.GetControlStartMarker(controlId, data, true)); }
public string DataFromChrome(ChromeData chromeData) { return(Newtonsoft.Json.JsonConvert.SerializeObject(chromeData)); }