示例#1
0
        public static IHtmlString Tabs(this HtmlHelper helper)
        {
            StringBuilder   sb      = new StringBuilder();
            HttpRequestBase request = helper.ViewContext.HttpContext.Request;

            string action     = helper.ViewContext.Controller.ValueProvider.GetValue("action").RawValue.ToString();
            string controller = helper.ViewContext.Controller.ValueProvider.GetValue("controller").RawValue.ToString();

            string config = request.MapPath("~/Demo.config");

            sb.Append("<div>");
            JsonData data = SimpleJsonDeserializer.Deserialize(File.ReadAllText(config));

            string description = String.Empty;

            for (int i = 0; i < data.Count; i++)
            {
                JsonData tab = data[i];

                String url   = (string)tab["url"];
                String title = (string)tab["title"];

                sb.Append("<a class='");
                if (controller == url)
                {
                    description = (string)tab["description"];
                    sb.Append("tab selected");
                }
                else
                {
                    sb.Append("tab");
                }

                UrlHelper u        = new UrlHelper(helper.ViewContext.RequestContext);
                string    printUrl = u.Action("Index", url, null);

                if (!printUrl.EndsWith("/"))
                {
                    printUrl += "/";
                }

                sb.Append("' href='");
                sb.Append(printUrl);
                sb.Append("'><span style='width: 100px; text-align:center;'>");
                sb.Append(title);
                sb.Append("</span>");
                sb.Append("</a>");
            }

            // closing

            sb.Append("</div>");

            sb.Append("<div class='header'><div class='bg-help'>");
            sb.Append(description);
            sb.Append("</div></div>");


            return(new HtmlString(sb.ToString()));
        }
        public static IHtmlString Tabs(this HtmlHelper helper)
        {
            StringBuilder   sb      = new StringBuilder();
            HttpRequestBase request = helper.ViewContext.HttpContext.Request;

            string dir       = "/";
            string fixedPath = request.Path.EndsWith("/") ? request.Path : request.Path + "/"; // fixes IIS vs. development server difference

            if (fixedPath.ToLower() != request.ApplicationPath.ToLower() + "/")
            {
                string relative = request.Path.Substring(request.ApplicationPath.Length);
                dir = relative.Substring(1, relative.IndexOf('/', 1) - 1);
            }

            string config = request.MapPath("~/Demo.config");

            sb.Append("<div>");
            JsonData data = SimpleJsonDeserializer.Deserialize(File.ReadAllText(config));

            string description = String.Empty;

            for (int i = 0; i < data.Count; i++)
            {
                JsonData tab = data[i];

                String url   = (string)tab["url"];
                String title = (string)tab["title"];

                sb.Append("<a class='");
                if (dir == url)
                {
                    description = (string)tab["description"];
                    sb.Append("tab selected");
                }
                else
                {
                    sb.Append("tab");
                }

                string path = (url == "/") ? url : "/" + url + "/";

                sb.Append("' href='");
                sb.Append(request.ApplicationPath + path);
                sb.Append("'><span style='width: 100px; text-align:center;'>");
                sb.Append(title);
                sb.Append("</span></a>");
            }

            sb.Append("</div>");

            sb.Append("<div class='header'><div class='bg-help'>");
            sb.Append(description);
            sb.Append("</div></div>");


            return(new HtmlString(sb.ToString()));
        }
示例#3
0
 static void Main(string[] args)
 {
     using (var reader = new StreamReader(@"sample1.json"))
     {
         var o = SimpleJsonDeserializer.Deserialize(reader);
         Console.WriteLine(SimpleJsonSerializer.Serialize(o));
     }
     Console.ReadLine();
 }
        private void ExecuteEventJSON(string ea)
        {
            JsonData jsonData  = SimpleJsonDeserializer.Deserialize(ea);
            JsonData jsonData2 = jsonData["header"];
            JsonData arg_1E_0  = jsonData["data"];
            JsonData jsonData3 = jsonData["parameters"];

            this.StartDate      = (DateTime)jsonData2["startDate"];
            this.SelectionStart = (DateTime)jsonData2["selectionStart"];
            string a;

            if ((a = (string)jsonData["action"]) != null)
            {
                if (!(a == "Visible"))
                {
                    if (!(a == "TimeRangeSelected"))
                    {
                        goto IL_125;
                    }
                    if (this.TimeRangeSelected != null)
                    {
                        DateTime start = (DateTime)jsonData3["start"];
                        DateTime end   = (DateTime)jsonData3["end"];
                        TimeRangeSelectedEventArgs timeRangeSelectedEventArgs = new TimeRangeSelectedEventArgs(start, end, null);
                        timeRangeSelectedEventArgs.Source = (this.Page.IsCallback ? EventSource.CallBack : EventSource.PostBack);
                        this.TimeRangeSelected(this, timeRangeSelectedEventArgs);
                        return;
                    }
                }
                else if (this.VisibleRangeChanged != null)
                {
                    VisibleRangeChangedEventArgs visibleRangeChangedEventArgs = new VisibleRangeChangedEventArgs();
                    visibleRangeChangedEventArgs.Source = (this.Page.IsCallback ? EventSource.CallBack : EventSource.PostBack);
                    this.VisibleRangeChanged(this, visibleRangeChangedEventArgs);
                    return;
                }
                return;
            }
IL_125:
            throw new NotSupportedException("This action type is not supported: " + jsonData["action"]);
        }
        protected override void OnLoad(EventArgs e)
        {
            string text = this.Context.Request.Params[this.ClientID + "_state"];

            if (!string.IsNullOrEmpty(text))
            {
                JsonData jsonData = SimpleJsonDeserializer.Deserialize(text);
                this.StartDate = (DateTime)jsonData["startDate"];
                DateTime selectionStart = (DateTime)jsonData["selectionStart"];
                this.SelectionStart = selectionStart;
                DateTime arg_69_0 = this.SelectionStart;
            }
            ScriptManagerHelper.RegisterClientScriptInclude(this, typeof(HMSCalendar), "common.js", this.GetResourceUrl("Common.js"));
            ScriptManagerHelper.RegisterClientScriptInclude(this, typeof(HMSNavigator), "navigator.js", this.GetResourceUrl("Navigator.js"));
            if (!string.IsNullOrEmpty(this.BoundHMSID) && !string.IsNullOrEmpty(this.BoundHMSClientObjectName))
            {
                throw new ArgumentException("You can specify either BoundHMSID or BoundHMSClientObjectName but not both.");
            }
            if (!string.IsNullOrEmpty(this.BoundHMSID))
            {
                this.boundCalendar = this.findCalendar(this.BoundHMSID);
            }
            base.OnLoad(e);
        }
示例#6
0
        public ActionResult CallBack(Controller c)
        {
            Controller = c;

            // init
            UpdateType = CallBackUpdateType.None;

            // read request
            JsonData input      = SimpleJsonDeserializer.Deserialize(c.Request.InputStream);
            String   action     = (string)input["action"];
            JsonData parameters = input["parameters"];
            JsonData header     = input["header"];
            JsonData data       = input["data"]; // custom data

            Version.Check((string)header["v"]);

            StartDate            = (DateTime)header["startDate"];
            WeekStarts           = WeekStartsParser.FromIntJavaScript((int)header["weekStarts"]);
            HeaderBackColor      = (string)header["headerBackColor"];
            BackColor            = (string)header["backColor"];
            NonBusinessBackColor = (string)header["nonBusinessBackColor"];
            Id = (string)header["id"];

            OnPrepare();

            switch (action)
            {
            case "EventMove":
                OnEventMove(EventMoveArgs.FromJson(parameters, new string[] {}, data));
                break;

            case "EventResize":
                OnEventResize(EventResizeArgs.FromJson(parameters, new string[] {}, data));
                break;

            case "EventClick":
                OnEventClick(EventClickArgs.FromJson(parameters, new string[] {}, data));
                break;

            case "TimeRangeSelected":
                OnTimeRangeSelected(TimeRangeSelectedArgs.FromJson(parameters, data));
                break;

            case "Command":
                OnCommand(CommandArgs.FromJson(parameters, data));
                break;

            case "Init":
                OnInit(new InitArgs());
                break;
            }

            OnFinish();
            LoadEvents();


            Hashtable result = new Hashtable();

            result["UpdateType"] = UpdateType.ToString();

            if (_callbackRedirect != null)
            {
                result["CallBackRedirect"] = _callbackRedirect;
                return(new JsonResult {
                    Data = result
                });
            }

            if (UpdateType == CallBackUpdateType.None)
            {
                return(new JsonResult {
                    Data = result
                });
            }

            result["Events"]       = GetEvents();
            result["CallBackData"] = _callbackData;

            if (UpdateType == CallBackUpdateType.Full)
            {
                result["StartDate"]            = StartDate.ToString("s");
                result["WeekStarts"]           = Week.ResolveAsInt(WeekStarts);
                result["HeaderBackColor"]      = HeaderBackColor;
                result["BackColor"]            = BackColor;
                result["NonBusinessBackColor"] = NonBusinessBackColor;
            }

            JsonResult json = new JsonResult();

            json.Data = result;

            return(json);
        }
示例#7
0
        public static IHtmlString Menu(this HtmlHelper helper)
        {
            string action     = helper.ViewContext.Controller.ValueProvider.GetValue("action").RawValue.ToString();
            string controller = helper.ViewContext.Controller.ValueProvider.GetValue("controller").RawValue.ToString();

            if (controller == "Home")
            {
                return(new HtmlString(String.Empty));
            }

            StringBuilder sb     = new StringBuilder();
            string        config = HostingEnvironment.MapPath("~/Views/" + controller + "/Navigation.json");

            JsonData data = SimpleJsonDeserializer.Deserialize(File.ReadAllText(config));

            for (int i = 0; i < data.Count; i++)
            {
                JsonData tab = data[i];

                String url   = (string)tab["url"];
                String title = (string)tab["title"];
                bool   pro   = tab["pro"] != null && (bool)tab["pro"];
                bool   isNew = tab["new"] != null && (bool)tab["new"];

                if (String.IsNullOrEmpty(url))
                {
                    sb.Append("<div class='header'>");
                    sb.Append(title);
                    sb.Append("</div>");
                }
                else
                {
                    sb.Append("<div><a href='");

                    UrlHelper u        = new UrlHelper(helper.ViewContext.RequestContext);
                    string    printUrl = u.Action(url, controller, null);
                    sb.Append(printUrl);
                    if (url == "Index")
                    {
                        sb.Append("/");
                    }
                    sb.Append("'");

                    if (action == url)
                    {
                        sb.Append(" class='selected'");
                    }

                    sb.Append("><span>");
                    sb.Append(title);
                    //sb.Append(" a:" + action);
                    sb.Append("</span>");
                    if (pro)
                    {
                        sb.Append(" <span class='pro'>PRO</span>");
                    }
                    if (isNew)
                    {
                        sb.Append(" <span class='new'>NEW</span>");
                    }
                    sb.Append("</a></div>");
                }
            }
            return(new HtmlString(sb.ToString()));
        }
        public static IHtmlString Menu(this HtmlHelper helper)
        {
            StringBuilder   sb      = new StringBuilder();
            HttpRequestBase request = helper.ViewContext.HttpContext.Request;
            string          path    = request.Path;

            // don't print menu on the front page)
            string fixedPath = request.Path.EndsWith("/") ? request.Path : request.Path + "/"; // fixes IIS vs. development server difference

            if (fixedPath.ToLower() == request.ApplicationPath.ToLower() + "/")
            {
                return(new HtmlString(String.Empty));
            }

            string relative = path.Substring(request.ApplicationPath.Length);
            string dir      = relative.Substring(1, relative.IndexOf('/', 1) - 1);
            string config   = request.MapPath("~/Views/" + dir + "/Navigation.json");
            string action   = relative.Substring(1 + dir.Length + 1);

            if (String.IsNullOrEmpty(action))
            {
                action = "/";
            }

            JsonData data = SimpleJsonDeserializer.Deserialize(File.ReadAllText(config));

            for (int i = 0; i < data.Count; i++)
            {
                JsonData tab = data[i];

                String url   = (string)tab["url"];
                String title = (string)tab["title"];

                if (String.IsNullOrEmpty(url))
                {
                    sb.Append("<div class='header'>");
                    sb.Append(title);
                    sb.Append("</div>");
                }
                else
                {
                    sb.Append("<div><a href='");
                    if (url == "/")
                    {
                        sb.Append("./");
                    }
                    else
                    {
                        sb.Append(url);
                    }
                    sb.Append("'");

                    if (action == url)
                    {
                        sb.Append(" class='selected'");
                    }

                    sb.Append("><span>");
                    sb.Append(title);
                    //sb.Append(" a:" + action);
                    sb.Append("</span></a></div>");
                }
            }
            return(new HtmlString(sb.ToString()));
        }
示例#9
0
        public ActionResult CallBack(Stream stream)
        {
            // init
            UpdateType = CallBackUpdateType.None;

            // read request
            JsonData input      = SimpleJsonDeserializer.Deserialize(stream);
            var      action     = (string)input["action"];
            JsonData parameters = input["parameters"];
            JsonData header     = input["header"];
            JsonData data       = input["data"]; // custom data

            Version.Check((string)header["v"]);

            Id                 = (string)header["id"];
            StartDate          = (DateTime)header["startDate"];
            Days               = (int)header["days"];
            HeightSpec         = HeightSpecParser.Parse((string)header["heightSpec"]);
            BusinessBeginsHour = (int)header["businessBeginsHour"];
            BusinessEndsHour   = (int)header["businessEndsHour"];
            ViewType           = ViewTypeParser.Parse((string)header["viewType"]);
            CellBackColor      = (string)header["backColor"];
            EventHeaderVisible = header["eventHeaderVisible"] != null && (bool)header["eventHeaderVisible"];
            TimeFormat         = TimeFormatParser.Parse((string)header["timeFormat"]);

            // required for custom hour header rendering
            HourNameBackColor = (string)header["hourNameBackColor"];
            HourFontFamily    = (string)header["hourFontFamily"];
            HourFontSize      = (string)header["hourFontSize"];
            HourFontColor     = (string)header["hourFontColor"];

            OnPrepare();

            switch (action)
            {
            case "Command":
                OnCommand(CommandArgs.FromJson(parameters, data));
                break;

            case "EventClick":
                OnEventClick(EventClickArgs.FromJson(parameters, data));
                break;

            case "EventMove":
                OnEventMove(EventMoveArgs.FromJson(parameters, data));
                break;

            case "EventResize":
                OnEventResize(EventResizeArgs.FromJson(parameters, data));
                break;

            case "TimeRangeSelected":
                OnTimeRangeSelected(TimeRangeSelectedArgs.FromJson(parameters, data));
                break;

            case "Init":
                OnInit(new InitArgs());
                break;

            default:
                throw new Exception(String.Format("Unknown CallBack command '{0}'.", action));
            }

            OnFinish();
            LoadEvents();
            LoadColumns();

            var result = new Hashtable();

            result["UpdateType"] = UpdateType.ToString();

            if (_callbackRedirect != null)
            {
                result["CallBackRedirect"] = _callbackRedirect;
                return(new JsonResult {
                    Data = result
                });
            }

            if (UpdateType == CallBackUpdateType.None)
            {
                return(new JsonResult {
                    Data = result
                });
            }

            result["Events"] = GetEvents();

            if (UpdateType == CallBackUpdateType.Full)
            {
                result["Days"]      = Days;
                result["StartDate"] = StartDate.ToString("s");
                result["ViewType"]  = ViewType.ToString();
                result["Columns"]   = _columns;
            }

            return(new JsonResult {
                Data = result
            });
        }