public void Register()
        {
            Handle.GET("/starcounterimporter/standalone", () => {
                Session session = Session.Current;

                if (session != null && session.Data != null) {
                    return session.Data;
                }

                StandalonePage standalone = new StandalonePage();

                if (session == null) {
                    session = new Session(SessionOptions.PatchVersioning);
                    standalone.Html = "/StarcounterImporter/viewmodels/StandalonePage.html";
                }

                standalone.Session = session;
                return standalone;
            });

            Handle.GET("/starcounterimporter", (Request request) => {
                return Db.Scope<StandalonePage>(() => {
                    StandalonePage master = this.GetMaster();

                    master.CurrentPage = Self.GET("/starcounterimporter/partials/index");

                    return master;
                });
            });

            RegisterPartials();
        }
        protected void PushChanges(string chatMessageKey)
        {
            var sessions = Db.SQL <SavedSession>("SELECT s FROM SavedSession s").Select(x => x.SessionId).ToList();

            Session.ScheduleTask(sessions, (Session s, string sessionId) =>
            {
                StandalonePage master = s.Data as StandalonePage;

                if (master?.CurrentPage is ChatGroupPage)
                {
                    ChatGroupPage page = (ChatGroupPage)master.CurrentPage;

                    if (page.Data.Equals(this.Data))
                    {
                        if (page.ChatMessagePages.Count >= _maxMsgs)
                        {
                            page.ChatMessagePages.RemoveAt(0);
                        }

                        page.ChatMessagePages.Add(Self.GET <Json>("/chatter/partials/chatmessages/" + chatMessageKey));
                        s.CalculatePatchAndPushOnWebSocket();
                    }
                }
            });
        }
Exemple #3
0
        private static StandalonePage GetStandalonePage()
        {
            StandalonePage page = null;

            if (Session.Current != null && Session.Current.Data is StandalonePage)
            {
                page = Session.Current.Data as StandalonePage;
            }

            return(page);
        }
        static void Main()
        {
            Handle.GET("/KitchenSink/standalone", () => {
                Session session = Session.Current;

                if (session != null && session.Data != null)
                {
                    return(session.Data);
                }

                var standalone = new StandalonePage();

                if (session == null)
                {
                    session         = new Session(SessionOptions.PatchVersioning);
                    standalone.Html = "/KitchenSink/StandalonePage.html";
                }
                else
                {
                    standalone.Html = "/KitchenSink/LauncherWrapperPage.html";
                }

                var nav = new NavPage();
                standalone.CurrentPage = nav;

                standalone.Session = session;
                return(standalone);
            });

            Handle.GET("/KitchenSink", () => {
                return(Self.GET("/KitchenSink/text"));
            });

            Handle.GET("/KitchenSink/button", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is ButtonPage))
                {
                    var page = new ButtonPage();
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/chart", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is ChartPage))
                {
                    var page = new ChartPage();

                    page.AddChartData("January", 4);
                    page.AddChartData("February", 7);
                    page.AddChartData("March", 9);
                    page.AddChartData("April", 12);
                    page.AddChartData("May", 15);
                    page.AddChartData("June", 19);

                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/checkbox", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is CheckboxPage))
                {
                    var page = new CheckboxPage();
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/datagrid", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is DatagridPage))
                {
                    var page = new DatagridPage();

                    DatagridPagePetsElementJson pet;
                    pet      = page.Pets.Add();
                    pet.Name = "Rocky";
                    pet.Kind = "Dog";

                    pet      = page.Pets.Add();
                    pet.Name = "Tigger";
                    pet.Kind = "Cat";

                    pet      = page.Pets.Add();
                    pet.Name = "Bella";
                    pet.Kind = "Rabbit";

                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/decimal", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is DecimalPage))
                {
                    var page   = new DecimalPage();
                    page.Price = 10;
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/dropdown", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is DropdownPage))
                {
                    var page = new DropdownPage();

                    DropdownPage.PetsElementJson pet;
                    pet       = page.Pets.Add();
                    pet.Label = "dogs";

                    pet       = page.Pets.Add();
                    pet.Label = "cats";

                    pet       = page.Pets.Add();
                    pet.Label = "rabbit";

                    page.SelectedPet = "dogs";

                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/html", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is HtmlPage))
                {
                    var page = new HtmlPage();
                    page.Bio = @"<h1>This is a markup text</h1>

You can put <strong>any</strong> <a href=""https://en.wikipedia.org/wiki/HTML"">HTML</a> in it.";
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/integer", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is IntegerPage))
                {
                    var page = new IntegerPage();
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/Geo", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is MapPage))
                {
                    var page = new MapPage();
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/markdown", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is MarkdownPage))
                {
                    var page = new MarkdownPage();
                    page.Bio = @"# This is a strucured text

It supports **markdown** *syntax*.";
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/radiolist", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is RadiolistPage))
                {
                    var page = new RadiolistPage();
                    MenuOptionsElement a;
                    a       = page.MenuOptions.Add();
                    a.Label = "Dogs";
                    a       = page.MenuOptions.Add();
                    a.Label = "Cats";
                    page.SelectOption(0);
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/multiselect", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is MultiselectPage))
                {
                    var page = new MultiselectPage()
                    {
                        Data = null
                    };
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/password", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is PasswordPage))
                {
                    var page = new PasswordPage();
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/table", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is TablePage))
                {
                    var page = new TablePage();

                    TablePage.PetsElementJson pet;
                    pet      = page.Pets.Add();
                    pet.Name = "Rocky";
                    pet.Kind = "Dog";

                    pet      = page.Pets.Add();
                    pet.Name = "Tigger";
                    pet.Kind = "Cat";

                    pet      = page.Pets.Add();
                    pet.Name = "Bella";
                    pet.Kind = "Rabbit";

                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/text", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is TextPage))
                {
                    var page = new TextPage();
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/textarea", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is TextareaPage))
                {
                    var page = new TextareaPage();
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/radio", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is RadioPage))
                {
                    var page = new RadioPage();

                    RadioPage.PetsElementJson pet;
                    pet       = page.Pets.Add();
                    pet.Label = "dogs";

                    pet       = page.Pets.Add();
                    pet.Label = "cats";

                    pet       = page.Pets.Add();
                    pet.Label = "rabbit";

                    page.SelectedPet = "dogs";

                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            Handle.GET("/KitchenSink/url", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is UrlPage))
                {
                    var page   = new UrlPage();
                    page.Url   = "/KitchenSink";
                    page.Label = "Go to home page";
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return(master);
            });

            //for a launcher
            Handle.GET("/KitchenSink/app-name", () => {
                return(new AppName());
            });

            Handle.GET("/KitchenSink/menu", () => {
                return(new Page()
                {
                    Html = "/KitchenSink/AppMenuPage.html"
                });
            });

            UriMapping.Map("/KitchenSink/menu", UriMapping.MappingUriPrefix + "/menu");
            UriMapping.Map("/KitchenSink/app-name", UriMapping.MappingUriPrefix + "/app-name");
        }
Exemple #5
0
        static void Main()
        {
            Handle.GET("/KitchenSink/standalone", () => {
                Session session = Session.Current;

                if (session != null && session.Data != null)
                    return session.Data;

                var standalone = new StandalonePage();

                if (session == null) {
                    session = new Session(SessionOptions.PatchVersioning);
                    standalone.Html = "/KitchenSink/StandalonePage.html";
                }
                else {
                    standalone.Html = "/KitchenSink/LauncherWrapperPage.html";
                }

                var nav = new NavPage();
                standalone.CurrentPage = nav;

                standalone.Session = session;
                return standalone;
            });

            Handle.GET("/KitchenSink", () => {
                return Self.GET("/KitchenSink/text");
            });

            Handle.GET("/KitchenSink/button", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is ButtonPage)) {
                    var page = new ButtonPage();
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/chart", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is ChartPage)) {
                    var page = new ChartPage();

                    page.AddChartData("January", 4);
                    page.AddChartData("February", 7);
                    page.AddChartData("March", 9);
                    page.AddChartData("April", 12);
                    page.AddChartData("May", 15);
                    page.AddChartData("June", 19);

                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/checkbox", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is CheckboxPage)) {
                    var page = new CheckboxPage();
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/datagrid", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is DatagridPage)) {
                    var page = new DatagridPage();

                    DatagridPagePetsElementJson pet;
                    pet = page.Pets.Add();
                    pet.Name = "Rocky";
                    pet.Kind = "Dog";

                    pet = page.Pets.Add();
                    pet.Name = "Tigger";
                    pet.Kind = "Cat";

                    pet = page.Pets.Add();
                    pet.Name = "Bella";
                    pet.Kind = "Rabbit";

                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/decimal", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is DecimalPage)) {
                    var page = new DecimalPage();
                    page.Price = 10;
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/dropdown", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is DropdownPage)) {
                    var page = new DropdownPage();

                    DropdownPage.PetsElementJson pet;
                    pet = page.Pets.Add();
                    pet.Label = "dogs";

                    pet = page.Pets.Add();
                    pet.Label = "cats";

                    pet = page.Pets.Add();
                    pet.Label = "rabbit";

                    page.SelectedPet = "dogs";

                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/html", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is HtmlPage)) {
                    var page = new HtmlPage();
                    page.Bio = @"<h1>This is a markup text</h1>

            You can put <strong>any</strong> <a href=""https://en.wikipedia.org/wiki/HTML"">HTML</a> in it.";
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/integer", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is IntegerPage)) {
                    var page = new IntegerPage();
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/Geo", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is MapPage)) {
                    var page = new MapPage();
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/markdown", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is MarkdownPage)) {
                    var page = new MarkdownPage();
                    page.Bio = @"# This is a strucured text

            It supports **markdown** *syntax*.";
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/radiolist", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is RadiolistPage)) {
                    var page = new RadiolistPage();
                    MenuOptionsElement a;
                    a = page.MenuOptions.Add();
                    a.Label = "Dogs";
                    a = page.MenuOptions.Add();
                    a.Label = "Cats";
                    page.SelectOption(0);
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/multiselect", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is MultiselectPage)) {
                    var page = new MultiselectPage() {
                        Data = null
                    };
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/password", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is PasswordPage)) {
                    var page = new PasswordPage();
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/table", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is TablePage)) {
                    var page = new TablePage();

                    TablePage.PetsElementJson pet;
                    pet = page.Pets.Add();
                    pet.Name = "Rocky";
                    pet.Kind = "Dog";

                    pet = page.Pets.Add();
                    pet.Name = "Tigger";
                    pet.Kind = "Cat";

                    pet = page.Pets.Add();
                    pet.Name = "Bella";
                    pet.Kind = "Rabbit";

                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/text", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is TextPage)) {
                    var page = new TextPage();
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/textarea", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is TextareaPage)) {
                    var page = new TextareaPage();
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/radio", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is RadioPage)) {
                    var page = new RadioPage();

                    RadioPage.PetsElementJson pet;
                    pet = page.Pets.Add();
                    pet.Label = "dogs";

                    pet = page.Pets.Add();
                    pet.Label = "cats";

                    pet = page.Pets.Add();
                    pet.Label = "rabbit";

                    page.SelectedPet = "dogs";

                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            Handle.GET("/KitchenSink/url", () => {
                var master = (StandalonePage)Self.GET("/KitchenSink/standalone");
                if (!((master.CurrentPage as NavPage).CurrentPage is UrlPage)) {
                    var page = new UrlPage();
                    page.Url = "/KitchenSink";
                    page.Label = "Go to home page";
                    (master.CurrentPage as NavPage).CurrentPage = page;
                }
                return master;
            });

            //for a launcher
            Handle.GET("/KitchenSink/app-name", () => {
                return new AppName();
            });

            Handle.GET("/KitchenSink/menu", () => {
                return new Page() { Html = "/KitchenSink/AppMenuPage.html" };
            });

            UriMapping.Map("/KitchenSink/menu", UriMapping.MappingUriPrefix + "/menu");
            UriMapping.Map("/KitchenSink/app-name", UriMapping.MappingUriPrefix + "/app-name");
        }
        public void Register()
        {
            string[] defaultVisibleStores = new string[] { "Developer Samples", "Essentials" };

            // Menu
            Handle.GET("/appstoreclient/menu", () => {
                return new Page() { Html = "/AppStoreClient/viewmodels/MenuPage.html" };
            });

            // App-name (Launchpad)
            Handle.GET("/appstoreclient/app-name", () => {
                return new AppNamePage();
            });

            // Workspace root (Launchpad)
            Handle.GET("/appstoreclient", () => {
                return Self.GET("/appstoreclient/apps");
            });

            Handle.GET("/appstoreclient/standalone", () => {
                Session session = Session.Current;

                if (session != null && session.Data != null) {
                    return session.Data;
                }

                StandalonePage page = new StandalonePage();

                if (session == null) {
                    session = new Session(SessionOptions.PatchVersioning);
                    page.Html = "/AppStoreClient/viewmodels/StandalonePage.html";
                }

                //page.CurrentPage = Self.GET<ListAppStoreAppsPage>("/AppStoreClient/apps");
                page.Session = session;

                return page;
            });

            //
            // App Store apps
            //
            Handle.GET("/appstoreclient/apps", (Request request) => {
                StandalonePage master = Self.GET<StandalonePage>("/appstoreclient/standalone");
                ListAppStoreAppsPage page = new ListAppStoreAppsPage() {
                    Html = "/AppStoreClient/viewmodels/AppStoreAppsPage.html",
                    Uri = request.Uri
                };

                StoreSetting setting = Db.SQL<StoreSetting>("SELECT ss FROM AppStoreClient.StoreSetting ss").First;

                if (setting != null && setting.DisplayAllStores) {
                    page.DisplayAllStores = true;
                } else if (setting == null || string.IsNullOrEmpty(setting.DisplayStores)) {
                    foreach (var store in defaultVisibleStores) {
                        page.DisplayStores.Add().StringValue = store;
                    }

                    page.DisplayAllStores = false;
                } else {
                    foreach (string s in setting.DisplayStores.Split(new char[] { ',', ';' })) {
                        string name = s.Trim();

                        if (string.IsNullOrEmpty(name)) {
                            continue;
                        }

                        page.DisplayStores.Add().StringValue = name;
                    }
                }

                master.CurrentPage = page;

                return master;
            });

            Handle.GET("/appstoreclient/setdisplaystores/{?}", (string value) => {
                StoreSetting setting = Db.SQL<StoreSetting>("SELECT ss FROM AppStoreClient.StoreSetting ss").First;

                value = System.Web.HttpUtility.UrlDecode(value);

                Db.Transact(() => {
                    if (setting == null) {
                        setting = new StoreSetting();
                    }

                    if (value == "all") {
                        setting.DisplayAllStores = true;
                        setting.DisplayStores = null;
                    } else {
                        setting.DisplayAllStores = false;
                        setting.DisplayStores = value;
                    }
                });

                return 200;
            });

            UriMapping.Map("/appstoreclient/menu", "/sc/mapping/menu");
            UriMapping.Map("/appstoreclient/app-name", "/sc/mapping/app-name");
        }
Exemple #7
0
        public void Register()
        {
            Db.Transact(() => {
                Db.SlowSQL("DELETE FROM SavedSession");
            });

            Application.Current.Use(new HtmlFromJsonProvider());
            Application.Current.Use(new PartialToStandaloneHtmlProvider());

            Handle.GET("/chatter/standalone", () => {
                var session = Session.Current;

                if (session?.Data != null)
                {
                    return(session.Data);
                }

                var standalone = new StandalonePage();

                if (session == null)
                {
                    session = new Session(SessionOptions.PatchVersioning);
                    session.AddDestroyDelegate(s => {
                        Db.Transact(() => {
                            var ss    = s.ToAsciiString();
                            var saved = Db.SQL <SavedSession>("SELECT s FROM SavedSession s WHERE s.SessionId = ?", ss).First;
                            saved.Delete();
                        });
                    });

                    Db.Transact(() => {
                        new SavedSession {
                            SessionId = session.ToAsciiString()
                        };
                    });
                }

                standalone.Session = session;
                return(standalone);
            });

            Handle.GET("/chatter", () => {
                return(Self.GET("/chatter/chatgroups"));
            });

            Handle.GET("/chatter/chatgroups", () => {
                return(Db.Scope <StandalonePage>(() => {
                    var master = (StandalonePage)Self.GET("/chatter/standalone");

                    master.CurrentPage = Self.GET("/chatter/partials/chatgroups");

                    return master;
                }));
            });

            Handle.GET("/chatter/chatgroup/{?}", (string name) => {
                return(Db.Scope <StandalonePage>(() => {
                    var master = (StandalonePage)Self.GET("/chatter/standalone");

                    master.CurrentPage = Self.GET("/chatter/partials/chatgroups/" + name);

                    return master;
                }));
            });

            Handle.GET("/chatter/systemuser/{?}", (string SystemUserId) => {
                return(Db.Scope <StandalonePage>(() => {
                    var master = (StandalonePage)Self.GET("/chatter/standalone");

                    master.CurrentPage = Self.GET("/chatter/partials/systemuser/" + SystemUserId);

                    return master;
                }));
            });

            RegisterLauncher();
            RegisterPartials();
            RegisterMap();
        }
Exemple #8
0
        public void Register() {
            Handle.GET("/people/standalone", () => {
                Session session = Session.Current;

                if (session != null && session.Data != null)
                    return session.Data;

                var standalone = new StandalonePage();

                if (session == null) {
                    session = new Session(SessionOptions.PatchVersioning);
                    standalone.Html = "/People/viewmodels/StandalonePage.html";
                }

                standalone.Session = session;
                return standalone;
            });

            // Workspace home page (landing page from launchpad) dashboard alias
            Handle.GET("/people", () => {
                return Self.GET("/people/organizations");
            });

            Handle.GET("/people/organizations", () => {
                var master = (StandalonePage)Self.GET("/people/standalone");
                if (!(master.CurrentPage is OrganizationsPage)) {
                    master.CurrentPage = GetLauncherPage("/people/partials/organizations");
                }
                return master;
            });

            Handle.GET("/people/organizations/add", () => {
                var master = (StandalonePage)Self.GET("/people/standalone");
                master.CurrentPage = GetLauncherPage("/people/partials/organizations-add", true);
                return master;
            });

            Handle.GET("/people/organizations/{?}", (string id) => {
                var master = (StandalonePage)Self.GET("/people/standalone");
                master.CurrentPage = GetLauncherPage("/people/partials/organizations/" + id, true);
                return master;
            });

            Handle.GET("/people/persons", () => {
                var master = (StandalonePage)Self.GET("/people/standalone");
                if (!(master.CurrentPage is PersonsPage)) {
                    master.CurrentPage = GetLauncherPage("/people/partials/persons");
                }
                return master;
            });

            Handle.GET("/people/persons/add", () => {
                return Db.Scope<Json>(() => {
                    var master = (StandalonePage)Self.GET("/people/standalone");
                    var person = new Simplified.Ring2.Person();

                    master.CurrentPage = GetLauncherPage("/people/partials/persons/" + person.Key, true);

                    return master;
                });
            });

            Handle.GET<string>("/people/persons/{?}", (string id) => {
                var master = (StandalonePage)Self.GET("/people/standalone");
                master.CurrentPage = GetLauncherPage("/people/partials/persons/" + id, true);
                return master;
            });

            Handle.GET("/people/search?query={?}", (string query) => {
                return Self.GET("/People/partials/search/" + HttpUtility.UrlEncode(query));
            });

            Handle.GET("/people/unload", () => {
                InitialData data = new InitialData();

                data.Unload();

                return 200;
            });

            Handle.GET("/people/apply-default-layout", () => {
                DefaultStyles styles = new DefaultStyles();
                Page p = new Page() {
                    Html = "/People/viewmodels/layout/ApplyDefaultLayoutPage.html"
                };

                styles.Apply();

                return p;
            });

            Handle.GET("/people/clear-layout", () => {
                DefaultStyles styles = new DefaultStyles();
                Page p = new Page() {
                    Html = "/People/viewmodels/layout/ClearLayoutPage.html"
                };

                styles.Clear();

                return p;
            });

            Handle.GET("/people/layout", () => {
                Page p = new Page() {
                    Html = "/People/viewmodels/layout/LayoutPage.html"
                };
                
                return p;
            });
        }
Exemple #9
0
        public void Register()
        {
            /* Launcher/Launchpad specific handlers */
            Handle.GET("/cashier/app-name", () => { return(new AppName()); });

            Handle.GET("/cashier/menu", () => {
                return(new Page()
                {
                    Html = "/Cashier/viewmodels/MenuPage.html"
                });
            });

            Handle.GET("/cashier/standalone", () => {
                Session session = Session.Current;

                if (session != null && session.Data != null)
                {
                    return(session.Data);
                }

                var standalone = new StandalonePage();

                if (session == null)
                {
                    session         = new Session(SessionOptions.PatchVersioning);
                    standalone.Html = "/Cashier/viewmodels/StandalonePage.html";
                }

                standalone.Session = session;
                return(standalone);
            });

            Handle.GET("/cashier/shop/{?}", (string objectId) => {
                StandalonePage master = (StandalonePage)Self.GET("/Cashier/standalone");
                master.CurrentPage    = Db.Scope <Json>(() => Self.GET <ShopPage>("/Cashier/partials/shop/" + objectId));
                return(master);
            });

            Handle.GET("/cashier/settings", () => {
                StandalonePage master = (StandalonePage)Self.GET("/Cashier/standalone");

                master.CurrentPage = Db.Scope <Json>(() => {
                    return(Self.GET <SettingsPage>("/Cashier/partials/settings"));
                });

                return(master);
            });

            Handle.GET("/cashier", () => {
                Organization shop     = Helpers.Organizations.GetMyShops().FirstOrDefault();
                StandalonePage master = (StandalonePage)Self.GET("/Cashier/standalone");

                if (shop != null)
                {
                    master.CurrentPage = Self.GET("/cashier/partials/shop/" + shop.Key);
                }

                return(master);
            });

            Handle.GET("/cashier/partials/shop/{?}", (string objectId) => {
                return(Db.Scope(() => {
                    var shop = (Organization)DbHelper.FromID(DbHelper.Base64DecodeObjectID(objectId));
                    var page = new ShopPage()
                    {
                        Data = shop
                    };

                    return page;
                }));
            });

            Handle.GET("/cashier/partials/settings", () => {
                var page = new SettingsPage();

                page.Data = (Settings)Db.SQL("SELECT s FROM Cashier.Settings s").First;

                return(page);
            });
        }