public void SavePageImage(Hashtable State, string page_name, string html) { //save half size image of page HtmlToImage thumb = new HtmlToImage(); if (State["SelectedDeviceType"].ToString() == Constants.IPAD || State["SelectedDeviceType"].ToString() == Constants.ANDROID_TABLET) { if (State["BackgroundColor"] == null) State["BackgroundColor"] = "#cccccc"; string background_color_div_prefix = "<div style=\"width:" + Constants.IPAD_SPLASH_PORTRAIT_WIDTH_S + "px;height:" + Constants.IPAD_SPLASH_PORTRAIT_HEIGHT_S + "px;vertical-align:top;background-color:" + State["BackgroundColor"].ToString() + "\" >"; if (State["SelectedDeviceType"].ToString() == Constants.ANDROID_TABLET) background_color_div_prefix = "<div style=\"width:" + Constants.ANDROID_TABLET_PORTRAIT_WIDTH_S + "px;height:" + Constants.ANDROID_TABLET_SPLASH_PORTRAIT_HEIGHT_S + "px;vertical-align:top;background-color:" + State["BackgroundColor"].ToString() + "\" >"; string background_color_div_suffix = "</div>"; html = background_color_div_prefix + html + background_color_div_suffix; } string page_image_url = thumb.ConvertToImageLink(State, page_name, html); if (page_image_url != null) { SaveAppPageImage(State, page_image_url); } }
public void CopyAppPage(Hashtable State, string page_to_copy, string new_page_name) { XmlDocument xmlDoc = GetStagingAppXml(State); XmlNode prev_page_name_node = xmlDoc.SelectSingleNode("//pages/page/name[. ='" + page_to_copy + "']"); if (prev_page_name_node != null) { XmlNode prev_page_node = prev_page_name_node.ParentNode; XmlNode new_page_node = prev_page_node.CloneNode(true); //modify prev node with new names new_page_node.SelectSingleNode("name").InnerText = new_page_name; new_page_node.SelectSingleNode("order").InnerText = GetNextPageOrder(xmlDoc); XmlNodeList fields = new_page_node.SelectSingleNode("fields").ChildNodes; foreach (XmlNode field in fields) { string id = field.SelectSingleNode("id").InnerText; field.SelectSingleNode("id").InnerText = new_page_name.Replace(" ","_") + "_" + id; if(field.Name == "table") { XmlNodeList table_field_names = field.SelectNodes("table_fields/table_field/name"); foreach (XmlNode table_field_name in table_field_names) { string name = table_field_name.InnerText; table_field_name.InnerText = new_page_name.Replace(" ", "_") + "_" + name; } } else if (field.Name == "picker") { XmlNodeList picker_field_names = field.SelectNodes("picker_fields/picker_field/name"); foreach (XmlNode picker_field_name in picker_field_names) { string name = picker_field_name.InnerText; picker_field_name.InnerText = new_page_name.Replace(" ", "_") + "_" + name; } } } prev_page_node.ParentNode.AppendChild(new_page_node); Util util = new Util(); State["AppXmlDoc"] = xmlDoc; util.UpdateStagingAppXml(State); HtmlToImage thumb = new HtmlToImage(); string page_image_url = thumb.ConvertToImageLink(State, new_page_name, State["BackgroundHtml"].ToString()); if (page_image_url != null) util.SaveAppPageImage(State, page_image_url); } }