示例#1
0
        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);
        }
示例#2
0
 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));
 }
示例#9
0
 public string DataFromChrome(ChromeData chromeData)
 {
     return(Newtonsoft.Json.JsonConvert.SerializeObject(chromeData));
 }