protected bool SavePage() { try { Util util = new Util(); Hashtable State = (Hashtable)HttpRuntime.Cache[Session.SessionID]; util.SetDefaultButton(State, DefaultButtonImage.Text); XmlUtil x_util = new XmlUtil(); //save application State["CreatePageMessage"] = null; string page_name = State["SelectedAppPage"].ToString(); State["PageHtml"] = x_util.FilterCanvasOutput(SavedCanvasHtml.Text); string html = State["PageHtml"].ToString(); Hashtable duplicates = x_util.EncodeAppPageToAppXml(State, page_name, html); Message.Text = "Page " + page_name + " has been saved. "; ShowPage(page_name); SavedCanvasHtml.Text = ""; if (duplicates != null) { StringBuilder errors = new StringBuilder(); foreach (string duplicate in duplicates.Keys) { errors.Append(duplicate + " internal name in current page also found on " + duplicates[duplicate].ToString() + " page; "); } Message.Text += errors.ToString() + " Your app will not work with duplicate identifiers. Fix and then save this page again."; } if (State["EncodeComputeWarnings"] != null) { Message.Text += " " + State["EncodeComputeWarnings"].ToString(); State["EncodeComputeWarnings"] = null; } InitAppPages(); PagePanel.Style.Value = PagePanelStyle; return true; } catch (Exception ex) { Util util = new Util(); Hashtable State = (Hashtable)HttpRuntime.Cache[Session.SessionID]; util.LogError(State, ex); Message.Text = "Internal Error: " + ex.Message + ": " + ex.StackTrace; return false; } }
protected void NewPage_Click(object sender, EventArgs e) { Util util = new Util(); Hashtable State = (Hashtable)HttpRuntime.Cache[Session.SessionID]; if (util.CheckSessionTimeout(State, Response, "Default.aspx")) return; try { ClearMessages(); if (SavedCanvasHtml.Text.Length > 0) { if (!SavePage()) return; } string next_page = PageName.Text.Trim().Replace(" ", "_"); PageName.Text = ""; if (!CheckPageName(CurrentApp.SelectedValue, next_page)) { return; } AppPages.SelectedValue = next_page; State["SelectedAppPage"] = next_page; PageName.Text = State["SelectedAppPage"].ToString(); XmlUtil x_util = new XmlUtil(); AppPages.Items.Add(new RadComboBoxItem(next_page, next_page)); AppPages.SelectedIndex = AppPages.Items.Count - 1; x_util.SaveAppPage(State, next_page, ""); x_util.EncodeAppPageToAppXml(State, next_page, ""); InitPage(); } catch (Exception ex) { util.LogError(State, ex); Message.Text = "Internal Error: " + ex.Message + ": " + ex.StackTrace; } }
protected bool SaveAppInDatabase(string app, string page_name) { try { ClearMessages(); Hashtable State = (Hashtable)HttpRuntime.Cache[Session.SessionID]; State["CreatePageMessage"] = null; //save application Util util = new Util(); XmlUtil x_util = new XmlUtil(); State["PageHtml"] = x_util.FilterCanvasOutput(SavedCanvasHtml.Text); string html = State["PageHtml"].ToString(); if ( State["SelectedDeviceType"] == null /*|| State["SelectedDeviceView"] == null*/) { State["SelectedDeviceType"] = Constants.IPHONE; DeviceType.Text = State["SelectedDeviceType"].ToString(); } util.CreateApp(State, page_name, State["SelectedDeviceType"].ToString(), AppDescription.Text); util.SetDefaultButton(State, DefaultButtonImage.Text); Hashtable duplicates = x_util.EncodeAppPageToAppXml(State, page_name, html); if (duplicates != null) { State["SelectedApp"] = app; util.DeleteApplication(State); ResetAppStateVariables(); UpdateAppLists(); AppPages.Items.Clear(); StringBuilder errors = new StringBuilder(); foreach (string duplicate in duplicates.Keys) { errors.Append(duplicate + " internal name in current page also found on " + duplicates[duplicate].ToString() + " page; "); } Message.Text = errors.ToString() + " This application was not saved because duplicate identifiers are not allowed."; return false; } x_util.SetBackgroundImage(State); SetViewForDevice(); ShowPage(page_name); CurrentApp.Items.Add(new RadComboBoxItem(app, app)); CurrentApp.SelectedIndex = CurrentApp.Items.Count - 1; AppPages.Items.Clear(); AppPages.Items.Add(new RadComboBoxItem(page_name, page_name)); AppPages.SelectedIndex = 0; SavedCanvasHtml.Text = ""; return true; } catch (Exception ex) { Util util = new Util(); Hashtable State = (Hashtable)HttpRuntime.Cache[Session.SessionID]; util.LogError(State, ex); Message.Text = "Internal Error: " + ex.Message + ": " + ex.StackTrace; return false; } }