private void CleanPropertiesOnDeletion(int contentTypeId) { // first delete from all master document types //TODO: Verify no endless loops with mixins DocumentType.GetAllAsList().FindAll(dt => dt.MasterContentTypes.Contains(contentTypeId)).ForEach( dt => CleanPropertiesOnDeletion(dt.Id)); //Initially Content.getContentOfContentType() was called, but because this doesn't include members we resort to sql lookups and deletes var tmp = new List <int>(); IRecordsReader dr = SqlHelper.ExecuteReader("SELECT nodeId FROM cmsContent INNER JOIN umbracoNode ON cmsContent.nodeId = umbracoNode.id WHERE ContentType = " + contentTypeId + " ORDER BY umbracoNode.text "); while (dr.Read()) { tmp.Add(dr.GetInt("nodeId")); } dr.Close(); foreach (var contentId in tmp) { SqlHelper.ExecuteNonQuery("DELETE FROM cmsPropertyData WHERE PropertyTypeId =" + this.Id + " AND contentNodeId = " + contentId); } // invalidate content type cache ContentType.FlushFromCache(contentTypeId); }
/// <summary> /// Ov /// </summary> /// <param name="d"></param> /// <returns></returns> public override System.Xml.XmlNode ToXMl(System.Xml.XmlDocument d) { // Get the value from string v = ""; try { IRecordsReader dr = SqlHelper.ExecuteReader("Select [value] from cmsDataTypeprevalues where id in (" + SqlHelper.EscapeString(Value.ToString()) + ")"); while (dr.Read()) { if (v.Length == 0) { v += dr.GetString("value"); } else { v += "," + dr.GetString("value"); } } dr.Close(); } catch {} return(d.CreateCDataSection(v)); }
public static XPathNodeIterator UpcomingEvents() { int contentType = DocumentType.GetByAlias("Event").Id; string property = "start"; string sql = string.Format(@"SELECT distinct contentNodeId from cmsPropertyData inner join cmsPropertyType ON cmspropertytype.contenttypeid = {0} and cmspropertytype.Alias = '{1}' and cmspropertytype.id = cmspropertydata.propertytypeid where dataDate > GETDATE()", contentType, property); ISqlHelper sqlhelper = umbraco.BusinessLogic.Application.SqlHelper; IRecordsReader rr = sqlhelper.ExecuteReader(sql); XmlDocument doc = new XmlDocument(); XmlNode root = umbraco.xmlHelper.addTextNode(doc, "events", ""); while (rr.Read()) { XmlNode x = (XmlNode)umbraco.content.Instance.XmlContent.GetElementById(rr.GetInt("contentNodeId").ToString()); if (x != null) { x = doc.ImportNode(x, true); root.AppendChild(x); } } rr.Close(); rr.Dispose(); return(root.CreateNavigator().Select(".")); }
private static List <Relation> GetRelations(string alias, string sort, int parentId, int number) { List <Relation> retval = new List <Relation>(); ISqlHelper sqlhelper = umbraco.BusinessLogic.Application.SqlHelper; IRecordsReader rr = sqlhelper.ExecuteReader( string.Format(@" SELECT TOP {0} umbracoRelation.id FROM umbracoRelation INNER JOIN umbracoRelationType ON umbracoRelationType.id = umbracoRelation.relType AND umbracoRelationType.alias = @alias where parentId = @parent ORDER BY datetime {1} ", number, sort) , sqlhelper.CreateParameter("@parent", parentId), sqlhelper.CreateParameter("@alias", alias) ); while (rr.Read()) { retval.Add(new Relation(rr.GetInt("id"))); } rr.Close(); rr.Dispose(); return(retval); }
protected override void setupNode() { base.setupNode(); IRecordsReader dr = SqlHelper.ExecuteReader("Select alias,design,master from cmsTemplate where nodeId = " + this.Id); bool hasRows = dr.Read(); if (hasRows) { _alias = dr.GetString("alias"); _design = dr.GetString("design"); //set the master template to zero if it's null _mastertemplate = dr.IsNull("master") ? 0 : dr.GetInt("master"); } dr.Close(); if (Umbraco.Core.Configuration.UmbracoSettings.DefaultRenderingEngine == RenderingEngine.Mvc && ViewHelper.ViewExists(this)) { _design = ViewHelper.GetFileContents(this); } else { _design = MasterPageHelper.GetFileContents(this); } }
private void setupStyleSheet(bool loadFileData, bool updateStyleProperties) { // Get stylesheet data IRecordsReader dr = SqlHelper.ExecuteReader("select filename, content from cmsStylesheet where nodeid = " + base.Id.ToString()); if (dr.Read()) { if (!dr.IsNull("filename")) { _filename = dr.GetString("filename"); } // Get Content from db or file if (!loadFileData) { if (!dr.IsNull("content")) { _content = dr.GetString("content"); } } else if (File.Exists(IOHelper.MapPath(SystemDirectories.Css + "/" + this.Text + ".css"))) { StreamReader re = File.OpenText(IOHelper.MapPath(SystemDirectories.Css + "/" + this.Text + ".css")); string input = null; bool read = true; _content = string.Empty; // NH: Updates the reader to support properties bool readingProperties = false; string propertiesContent = String.Empty; while ((input = re.ReadLine()) != null && read) { if (input.Contains("EDITOR PROPERTIES")) { readingProperties = true; } else if (readingProperties) { propertiesContent += input.Replace("\n", "") + "\n"; } else { _content += input.Replace("\n", "") + "\n"; } } re.Close(); // update properties if (updateStyleProperties) { if (propertiesContent != String.Empty) { parseProperties(propertiesContent); } } } } dr.Close(); }
private void LoadMacros() { IRecordsReader macroRenderings = SqlHelper.ExecuteReader("select id, macroAlias, macroName from cmsMacro order by macroName"); rpt_macros.DataSource = macroRenderings; rpt_macros.DataBind(); macroRenderings.Close(); }
public DataSet FromIRecordReader(IRecordsReader recordsReader) { // Get the internal RawDataReader (obsolete) System.Data.SqlClient.SqlDataReader reader = ((umbraco.DataLayer.SqlHelpers.SqlServer.SqlServerDataReader)recordsReader).RawDataReader; DataSet dataSet = new DataSet(); do { DataTable dataTable = new DataTable(); DataTable schemaTable = reader.GetSchemaTable(); if (schemaTable != null) { // A query returning records was executed foreach (DataRow dataRow in schemaTable.Rows) { // Create a column name that is unique in the data table string columnName = (string)dataRow["ColumnName"]; // Add the column definition to the data table DataColumn column = new DataColumn(columnName, (Type)dataRow["DataType"]); dataTable.Columns.Add(column); } dataSet.Tables.Add(dataTable); // Fill the data table we just created while (reader.Read()) { DataRow dataRow = dataTable.NewRow(); for (int i = 0; i < reader.FieldCount; i++) { dataRow[i] = reader.GetValue(i); } dataTable.Rows.Add(dataRow); } } else { // No records were returned, return number of rows affected dataTable.Columns.Add(new DataColumn("RowsAffected")); dataSet.Tables.Add(dataTable); DataRow rowsAffectedRow = dataTable.NewRow(); rowsAffectedRow[0] = reader.RecordsAffected; dataTable.Rows.Add(rowsAffectedRow); } } // Go trough all result sets while (reader.NextResult()); // Close the data reader so the underlying connection is closed recordsReader.Close(); return(dataSet); }
/// <summary> /// Initializes this instance. /// </summary> private void initialize() { IRecordsReader dr = SqlHelper.ExecuteReader( "Select id, sortorder, [value] from cmsDataTypePreValues where id = @id order by sortorder", SqlHelper.CreateParameter("@id", Id)); if (dr.Read()) { _sortOrder = dr.GetInt("sortorder"); _value = dr.GetString("value"); } dr.Close(); }
public Member[] GetMembers() { ArrayList retval = new ArrayList(); IRecordsReader dr = SqlHelper.ExecuteReader("select member from cmsMember2MemberGroup where memberGroup = @memberGroup", SqlHelper.CreateParameter("@memberGroup", Id)); while (dr.Read()) { retval.Add(new Member(dr.GetInt("member"))); } dr.Close(); return((Member[])retval.ToArray(typeof(Member))); }
public Member[] GetMembers(string usernameToMatch) { ArrayList retval = new ArrayList(); IRecordsReader dr = SqlHelper.ExecuteReader("select member from cmsMember2MemberGroup inner join cmsMember on cmsMember.nodeId = cmsMember2MemberGroup.member where loginName like @username and memberGroup = @memberGroup", SqlHelper.CreateParameter("@memberGroup", Id), SqlHelper.CreateParameter("@username", usernameToMatch + "%")); while (dr.Read()) { retval.Add(new Member(dr.GetInt("member"))); } dr.Close(); return((Member[])retval.ToArray(typeof(Member))); }
/// <summary> /// Retrieve a list of the node id's of all CMSNodes given the objecttype /// </summary> /// <param name="objectType">The objecttype identifier</param> /// <returns> /// A list of all node ids which each are associated to a CMSNode /// </returns> public int[] GetAllUniqueNodeIdsFromObjectType(Guid objectType) { IRecordsReader dr = SqlHelper.ExecuteReader("Select id from umbracoNode where nodeObjectType = @type", SqlHelper.CreateParameter("@type", objectType)); var tmp = new System.Collections.ArrayList(); while (dr.Read()) { tmp.Add(dr.GetInt("id")); } dr.Close(); return((int[])tmp.ToArray(typeof(int))); }
private void initProperty() { IRecordsReader dr = SqlHelper.ExecuteReader("Select stylesheetPropertyAlias,stylesheetPropertyValue from cmsStylesheetProperty where nodeId = " + this.Id.ToString()); if (dr.Read()) { _alias = dr.GetString("stylesheetPropertyAlias"); _value = dr.GetString("stylesheetPropertyValue"); } else { throw new ArgumentException("NO DATA EXSISTS"); } dr.Close(); }
/// <summary> /// Gets the pre values collection. /// </summary> /// <param name="DataTypeId">The data type id.</param> /// <returns></returns> public static SortedList GetPreValues(int DataTypeId) { SortedList retval = new SortedList(); IRecordsReader dr = SqlHelper.ExecuteReader( "Select id, sortorder, [value] from cmsDataTypePreValues where DataTypeNodeId = @dataTypeId order by sortorder", SqlHelper.CreateParameter("@dataTypeId", DataTypeId)); int counter = 0; while (dr.Read()) { retval.Add(counter, new PreValue(dr.GetInt("id"), dr.GetInt("sortorder"), dr.GetString("value"))); counter++; } dr.Close(); return(retval); }
public template(int templateID) { if (templateCache["template" + templateID.ToString()] != null) { template t = (template)templateCache["template" + templateID]; this._masterTemplate = t._masterTemplate; this._templateAlias = t._templateAlias; this._templateDesign = t._templateDesign; this._masterTemplate = t._masterTemplate; this._templateName = t._templateName; } else { using (IRecordsReader templateData = SqlHelper.ExecuteReader("select nodeId, alias, master, text, design from cmsTemplate inner join umbracoNode node on node.id = cmsTemplate.nodeId where nodeId = @templateID", SqlHelper.CreateParameter("@templateID", templateID))) { if (templateData.Read()) { // Get template master and replace content where the template if (!templateData.IsNull("master")) { _masterTemplate = templateData.GetInt("master"); } if (!templateData.IsNull("alias")) { _templateAlias = templateData.GetString("alias"); } if (!templateData.IsNull("text")) { _templateName = templateData.GetString("text"); } if (!templateData.IsNull("design")) { _templateDesign = templateData.GetString("design"); } templateData.Close(); templateCache.Insert("template" + templateID.ToString(), this); } } } // Only check for master on legacy templates - can show error when using master pages. if (!UmbracoSettings.UseAspNetMasterPages) { checkForMaster(templateID); } }
public static List <LogItem> ConvertIRecordsReader(IRecordsReader reader) { var items = new List <LogItem>(); while (reader.Read()) { items.Add(new LogItem( reader.GetInt("userId"), reader.GetInt("nodeId"), reader.GetDateTime("DateStamp"), ConvertLogHeader(reader.GetString("logHeader")), reader.GetString("logComment"))); } reader.Close(); reader.Dispose(); return(items); }
/// <summary> /// Retrieve a list of the unique id's of all CMSNodes given the objecttype /// </summary> /// <param name="objectType">The objecttype identifier</param> /// <returns> /// A list of all unique identifiers which each are associated to a CMSNode /// </returns> public Guid[] GetAllUniquesFromObjectType(Guid objectType) { IRecordsReader dr = SqlHelper.ExecuteReader("Select uniqueID from umbracoNode where nodeObjectType = @type", SqlHelper.CreateParameter("@type", objectType)); var tmp = new System.Collections.ArrayList(); while (dr.Read()) { tmp.Add(dr.GetGuid("uniqueID")); } dr.Close(); Guid[] retval = new Guid[tmp.Count]; for (int i = 0; i < tmp.Count; i++) { retval[i] = (Guid)tmp[i]; } return(retval); }
/// <summary> /// Retrieve HTML from the database cache for the given node /// </summary> /// <param name="nodeId">Id of the node</param> /// <param name="fullHtml">string to fill with HTML</param> /// <returns>bool indicating success/failure</returns> public static bool GetRecord(int nodeId, out string fullHtml) { fullHtml = ""; if (nodeId < 1) { return(false); } var success = false; ISqlHelper sqlHelper = null; IRecordsReader result = null; try { const string sqlQuery = "SELECT fullHTML FROM fullTextCache WHERE nodeId = @nodeId"; sqlHelper = DataLayerHelper.CreateSqlHelper(global::Umbraco.Core.ApplicationContext.Current.DatabaseContext.ConnectionString); result = sqlHelper.ExecuteReader(sqlQuery, sqlHelper.CreateParameter("@nodeId", nodeId)); if (result != null && result.HasRecords && result.Read() && result.ContainsField("fullHTML")) { fullHtml = result.GetString("fullHTML"); success = true; } } catch (umbraco.UmbracoException ex) { LogHelper.Error(typeof(DbAccess), "Error In Database Query to fullTextCache", ex); fullHtml = ""; } finally { if (result != null) { result.Close(); } if (sqlHelper != null) { sqlHelper.Dispose(); } } return(success); }
/// <summary> /// Retrive a list of Content sharing the ContentType /// </summary> /// <param name="ct">The ContentType</param> /// <returns>A list of Content objects sharing the ContentType defined.</returns> public static Content[] getContentOfContentType(ContentType ct) { IRecordsReader dr = SqlHelper.ExecuteReader("Select nodeId from cmsContent INNER JOIN umbracoNode ON cmsContent.nodeId = umbracoNode.id where ContentType = " + ct.Id + " ORDER BY umbracoNode.text "); System.Collections.ArrayList tmp = new System.Collections.ArrayList(); while (dr.Read()) { tmp.Add(dr.GetInt("nodeId")); } dr.Close(); Content[] retval = new Content[tmp.Count]; for (int i = 0; i < tmp.Count; i++) { retval[i] = new Content((int)tmp[i]); } return(retval); }
/// <summary> /// Retrieves the top level nodes in the hierarchy /// </summary> /// <param name="ObjectType">The Guid identifier of the type of objects</param> /// <returns> /// A list of all top level nodes given the objecttype /// </returns> public static Guid[] TopMostNodeIds(Guid ObjectType) { IRecordsReader dr = SqlHelper.ExecuteReader("Select uniqueID from umbracoNode where nodeObjectType = @type And parentId = -1 order by sortOrder", SqlHelper.CreateParameter("@type", ObjectType)); System.Collections.ArrayList tmp = new System.Collections.ArrayList(); while (dr.Read()) { tmp.Add(dr.GetGuid("uniqueID")); } dr.Close(); Guid[] retval = new Guid[tmp.Count]; for (int i = 0; i < tmp.Count; i++) { retval[i] = (Guid)tmp[i]; } return(retval); }
public virtual List <CMSPreviewNode> GetNodesForPreview(bool childrenOnly) { List <CMSPreviewNode> nodes = new List <CMSPreviewNode>(); string sql = @" select umbracoNode.id, umbracoNode.parentId, umbracoNode.level, umbracoNode.sortOrder, cmsPreviewXml.xml from umbracoNode inner join cmsPreviewXml on cmsPreviewXml.nodeId = umbracoNode.id where trashed = 0 and path like '{0}' order by level,sortOrder"; string pathExp = childrenOnly ? Path + ",%" : Path; IRecordsReader dr = SqlHelper.ExecuteReader(String.Format(sql, pathExp)); while (dr.Read()) { nodes.Add(new CMSPreviewNode(dr.GetInt("id"), dr.GetGuid("uniqueID"), dr.GetInt("parentId"), dr.GetShort("level"), dr.GetInt("sortOrder"), dr.GetString("xml"))); } dr.Close(); return(nodes); }
private void Initialize(int id) { IRecordsReader dr = SqlHelper.ExecuteReader( "select id, uninstalled, upgradeId, installDate, userId, package, versionMajor, versionMinor, versionPatch from umbracoInstalledPackages where id = @id", SqlHelper.CreateParameter("@id", id)); if (dr.Read()) { Id = id; Uninstalled = dr.GetBoolean("uninstalled"); UpgradeId = dr.GetInt("upgradeId"); InstallDate = dr.GetDateTime("installDate"); User = User.GetUser(dr.GetInt("userId")); PackageId = dr.GetGuid("package"); VersionMajor = dr.GetInt("versionMajor"); VersionMinor = dr.GetInt("versionMinor"); VersionPatch = dr.GetInt("versionPatch"); } dr.Close(); }
protected override void OnInit(EventArgs e) { base.OnInit(e); IRecordsReader dropdownData = Application.SqlHelper.ExecuteReader("select id, text from umbracoNode where nodeObjectType = '39EB0F98-B348-42A1-8662-E7EB18487560' order by text"); base.DataValueField = "id"; base.DataTextField = "text"; base.DataSource = dropdownData; base.DataBind(); base.Items.Insert(0, new ListItem(ui.Text("choose") + "...", "")); base.SelectedValue = _data.Value.ToString(); // Iterate on the control items and mark fields by match them with the Text property! //foreach(ListItem li in base.Items) //{ // if ((","+base.SelectedValue+",").IndexOf(","+li.Value.ToString()+",") > -1) // li.Selected = true; //} dropdownData.Close(); }
protected override void setupNode() { base.setupNode(); IRecordsReader dr = SqlHelper.ExecuteReader("Select alias,design,master from cmsTemplate where nodeId = " + this.Id); bool hasRows = dr.Read(); if (hasRows) { _alias = dr.GetString("alias"); _design = dr.GetString("design"); //set the master template to zero if it's null _mastertemplate = dr.IsNull("master") ? 0 : dr.GetInt("master"); } dr.Close(); // test for masterpages if (UmbracoSettings.UseAspNetMasterPages) { _design = getMasterPageContent(); } }
private static XPathNodeIterator CommentsToXml(IRecordsReader rr) { XmlDocument xd = new XmlDocument(); XmlNode x = umbraco.xmlHelper.addTextNode(xd, "comments", ""); while (rr.Read()) { XmlNode c = xd.CreateElement("comment"); c.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "id", rr.GetInt("id").ToString())); c.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "nodeid", rr.GetInt("nodeid").ToString())); c.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "created", rr.GetDateTime("created").ToString())); c.AppendChild(umbraco.xmlHelper.addCDataNode(xd, "name", rr.GetString("name"))); c.AppendChild(umbraco.xmlHelper.addCDataNode(xd, "email", rr.GetString("email"))); c.AppendChild(umbraco.xmlHelper.addCDataNode(xd, "website", rr.GetString("website"))); c.AppendChild(umbraco.xmlHelper.addCDataNode(xd, "message", rr.GetString("comment"))); x.AppendChild(c); } xd.AppendChild(x); rr.Close(); return xd.CreateNavigator().Select("."); }
protected void Page_Load(object sender, System.EventArgs e) { //set labels on properties... pp_insertAltField.Text = ui.Text("templateEditor", "alternativeField"); pp_insertAltText.Text = ui.Text("templateEditor", "alternativeText"); pp_insertBefore.Text = ui.Text("templateEditor", "preContent"); pp_insertAfter.Text = ui.Text("templateEditor", "postContent"); pp_FormatAsDate.Text = ui.Text("templateEditor", "formatAsDate"); pp_casing.Text = ui.Text("templateEditor", "casing"); pp_encode.Text = ui.Text("templateEditor", "encoding"); if (UmbracoConfig.For.UmbracoSettings().Templates.UseAspNetMasterPages) { tagName.Value = "umbraco:Item"; } // either get page fields or dictionary items string fieldSql = ""; if (helper.Request("tagName") == "UMBRACOGETDICTIONARY") { fieldSql = "select '#'+[key] as alias from cmsDictionary order by alias"; m_IsDictionaryMode = true; pp_insertField.Text = "Insert Dictionary Item"; } else { //exclude built-in memberhip properties from showing up here var exclude = Constants.Conventions.Member.GetStandardPropertyTypeStubs() .Select(x => SqlSyntaxContext.SqlSyntaxProvider.GetQuotedValue(x.Key)).ToArray(); fieldSql = string.Format( "select distinct alias from cmsPropertyType where alias not in ({0}) order by alias", string.Join(",", exclude)); pp_insertField.Text = ui.Text("templateEditor", "chooseField"); } fieldPicker.ChooseText = ui.Text("templateEditor", "chooseField"); fieldPicker.StandardPropertiesLabel = ui.Text("templateEditor", "standardFields"); fieldPicker.CustomPropertiesLabel = ui.Text("templateEditor", "customFields"); IRecordsReader dataTypes = SqlHelper.ExecuteReader(fieldSql); fieldPicker.DataTextField = "alias"; fieldPicker.DataValueField = "alias"; fieldPicker.DataSource = dataTypes; fieldPicker.DataBind(); fieldPicker.Attributes.Add("onChange", "document.forms[0].field.value = document.forms[0]." + fieldPicker.ClientID + "[document.forms[0]." + fieldPicker.ClientID + ".selectedIndex].value;"); dataTypes.Close(); altFieldPicker.ChooseText = ui.Text("templateEditor", "chooseField"); altFieldPicker.StandardPropertiesLabel = ui.Text("templateEditor", "standardFields"); altFieldPicker.CustomPropertiesLabel = ui.Text("templateEditor", "customFields"); IRecordsReader dataTypes2 = SqlHelper.ExecuteReader(fieldSql); altFieldPicker.DataTextField = "alias"; altFieldPicker.DataValueField = "alias"; altFieldPicker.DataSource = dataTypes2; altFieldPicker.DataBind(); altFieldPicker.Attributes.Add("onChange", "document.forms[0].useIfEmpty.value = document.forms[0]." + altFieldPicker.ClientID + "[document.forms[0]." + altFieldPicker.ClientID + ".selectedIndex].value;"); dataTypes2.Close(); // Pre values if (!m_IsDictionaryMode) { foreach (string s in preValuesSource) { fieldPicker.Items.Add(new ListItem(s, s.Replace("@", ""))); altFieldPicker.Items.Add(new ListItem(s, s.Replace("@", ""))); } } }
protected void Page_Load(object sender, System.EventArgs e) { //set labels on properties... pp_insertAltField.Text = ui.Text("templateEditor", "alternativeField"); pp_insertAltText.Text = ui.Text("templateEditor", "alternativeText"); pp_recursive.Text = ui.Text("templateEditor", "recursive"); pp_insertBefore.Text = ui.Text("templateEditor", "preContent"); pp_insertAfter.Text = ui.Text("templateEditor", "postContent"); pp_FormatAsDate.Text = ui.Text("templateEditor", "formatAsDate"); pp_casing.Text = ui.Text("templateEditor", "casing"); pp_encode.Text = ui.Text("templateEditor", "encoding"); pp_convertLineBreaks.Text = ui.Text("templateEditor", "convertLineBreaks"); pp_removePTags.Text = ui.Text("templateEditor", "removeParagraph"); if (UmbracoSettings.UseAspNetMasterPages) { tagName.Value = "umbraco:Item"; } // either get page fields or dictionary items string fieldSql = ""; if (helper.Request("tagName") == "UMBRACOGETDICTIONARY") { fieldSql = "select '#'+[key] as alias from cmsDictionary order by alias"; m_IsDictionaryMode = true; pp_insertField.Text = "Insert Dictionary Item"; } else { fieldSql = "select distinct alias from cmsPropertyType order by alias"; pp_insertField.Text = umbraco.ui.Text("templateEditor", "chooseField"); } IRecordsReader dataTypes = SqlHelper.ExecuteReader(fieldSql); fieldPicker.DataTextField = "alias"; fieldPicker.DataValueField = "alias"; fieldPicker.DataSource = dataTypes; fieldPicker.DataBind(); fieldPicker.Attributes.Add("onChange", "document.forms[0].field.value = document.forms[0]." + fieldPicker.ClientID + "[document.forms[0]." + fieldPicker.ClientID + ".selectedIndex].value;"); dataTypes.Close(); IRecordsReader dataTypes2 = SqlHelper.ExecuteReader(fieldSql); altFieldPicker.DataTextField = "alias"; altFieldPicker.DataValueField = "alias"; altFieldPicker.DataSource = dataTypes2; altFieldPicker.DataBind(); altFieldPicker.Attributes.Add("onChange", "document.forms[0].useIfEmpty.value = document.forms[0]." + altFieldPicker.ClientID + "[document.forms[0]." + altFieldPicker.ClientID + ".selectedIndex].value;"); dataTypes2.Close(); fieldPicker.Items.Insert(0, new ListItem(ui.Text("general", "choose", base.getUser()))); altFieldPicker.Items.Insert(0, new ListItem(ui.Text("general", "choose", base.getUser()))); // Pre values if (!m_IsDictionaryMode) { foreach (string s in preValuesSource) { fieldPicker.Items.Add(new ListItem(s, s.Replace("@", ""))); altFieldPicker.Items.Add(new ListItem(s, s.Replace("@", ""))); } } }
public void ProcessRequest(HttpContext context) { legacyAjaxCalls.Authorize(); string format = context.Request.QueryString["format"]; bool returnJson = format == "json"; context.Response.ContentType = returnJson ? "application/json" : "text/plain"; int count = 2; string prefixText = context.Request.QueryString["q"]; if (string.IsNullOrEmpty(prefixText)) { prefixText = context.Request.QueryString["term"]; } string group = context.Request.QueryString["group"]; string id = context.Request.QueryString["id"]; string sql; IRecordsReader reader = null; try { //if all is correct if (!String.IsNullOrEmpty(group) && !String.IsNullOrEmpty(id)) { sql = @"SELECT TOP (20) tag FROM cmsTags WHERE tag LIKE @prefix AND cmsTags.id not in (SELECT tagID FROM cmsTagRelationShip WHERE NodeId = @nodeId) AND cmstags." + SqlSyntaxContext.SqlSyntaxProvider.GetQuotedColumnName("group") + " = @group;"; using (var sqlHelper = Application.SqlHelper) using (var rr = sqlHelper.ExecuteReader(sql, sqlHelper.CreateParameter("@count", count), sqlHelper.CreateParameter("@prefix", prefixText + "%"), sqlHelper.CreateParameter("@nodeId", id), sqlHelper.CreateParameter("@group", group) )) { reader = rr; } } else { //fallback... sql = "SELECT TOP (20) tag FROM cmsTags WHERE tag LIKE @prefix"; using (var sqlHelper = Application.SqlHelper) using (var rr = sqlHelper.ExecuteReader(sql, sqlHelper.CreateParameter("@count", count), sqlHelper.CreateParameter("@prefix", prefixText + "%") )) { reader = rr; } } var tagList = new List <string>(); while (reader.Read()) { tagList.Add(reader.GetString("tag")); } context.Response.Write(returnJson ? new JavaScriptSerializer().Serialize(tagList) : string.Join(Environment.NewLine, tagList)); } catch (Exception ex) { LogHelper.Error <TagsAutoCompleteHandler>("An error occurred", ex); } finally { if (reader != null) { reader.Close(); reader.Dispose(); } } }