private void TryLoadTag()
	{
		int id = TagId;
		if (id <= 0)
		{
			editorMode = TagEditorMode.Creation;
			tag = new BXContentTag();
		}
		else
		{
			editorMode = TagEditorMode.Modification;
			BXContentTagQuery q = new BXContentTagQuery();
			q.Filter = new BXContentTagFilterItem(BXContentTagField.Id, BXSqlFilterOperators.Equal, id);
			q.SelectLastUpdate = true;
			q.SelectTagCount = true;
			BXContentTagCollection tags = q.Execute();
			tag = tags.Count != 0 ? tags[0] : null;

			if (tag == null)
			{
				_errorMessage = GetMessageRaw("Error.NotFound");
				return;
			}
		}

		if (editorMode == TagEditorMode.Modification)
			Status.SelectedValue = tag.Status.ToString();
		else
		{
			Name.Text = "";
			Status.SelectedValue = "Approved";
		}
	}
	private BXContentTagQuery BuildTagQuery()
	{
		//if (query != null)
		//	return query;

		BXContentTagQuery query = new BXContentTagQuery();
		BXContentTagGroupFilter tf = null;

		foreach (BXFormFilterItem i in ItemFilter.CurrentFilter)
		{
			if (!i.filterName.StartsWith("Tag."))
				continue;

			tf = tf ?? new BXContentTagGroupFilter(BXFilterExpressionCombiningLogic.And);
			tf.Add(new BXContentTagFilterItem(
				(BXContentTagField)Enum.Parse(typeof(BXContentTagField), i.filterName.Substring("Tag.".Length), true), 
				i.filterOperator, 
				i.filterValue
			));
		}
		query.Filter = tf;
		if (Array.IndexOf(ItemGrid.GetVisibleColumnsKeys(), "TagCount") != -1)
			query.SelectTagCount = true;
		if (Array.IndexOf(ItemGrid.GetVisibleColumnsKeys(), "LastUpdate") != -1)
			query.SelectLastUpdate = true;

		//BXSearchQuery sq = new BXSearchQuery();
		//sq.CalculateRelevance = false;
		//sq.CheckPermissions = false;
		//sq.SiteId = "";
		//sq.LanguageId = "";
		//query.SearchQuery = sq;

		return query;
	}