You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
298 lines
8.9 KiB
298 lines
8.9 KiB
using System;
|
|
using System.Collections;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.IO;
|
|
using System.Web;
|
|
using UDDI;
|
|
using UDDI.API;
|
|
using UDDI.API.ServiceType;
|
|
using UDDI.Diagnostics;
|
|
|
|
namespace UDDI.Web
|
|
{
|
|
public class Taxonomy
|
|
{
|
|
public static DataView GetTaxonomies()
|
|
{
|
|
Debug.Enter();
|
|
|
|
DataTable taxonomies = GetTaxonomiesDataSet();
|
|
|
|
Debug.Leave();
|
|
|
|
return taxonomies.DefaultView;
|
|
}
|
|
public static DataView GetTaxonomies( string filter, string sort)
|
|
{
|
|
Debug.Enter();
|
|
|
|
DataTable taxonomies = GetTaxonomiesDataSet();
|
|
|
|
DataView view = new DataView( taxonomies, filter, sort,DataViewRowState.OriginalRows );
|
|
|
|
Debug.Leave();
|
|
|
|
return view;
|
|
}
|
|
protected static DataTable GetTaxonomiesDataSet( )
|
|
{
|
|
Debug.Enter();
|
|
|
|
DataSet taxonomies = new DataSet();
|
|
|
|
SqlCommand cmd = new SqlCommand( "UI_getTaxonomies", ConnectionManager.GetConnection() );
|
|
cmd.CommandType = CommandType.StoredProcedure;
|
|
|
|
cmd.Transaction = ConnectionManager.GetTransaction();
|
|
|
|
SqlDataAdapter adapter = new SqlDataAdapter( cmd );
|
|
|
|
adapter.Fill( taxonomies, "Taxonomies" );
|
|
|
|
Debug.Leave();
|
|
|
|
return taxonomies.Tables[ "Taxonomies" ];
|
|
}
|
|
|
|
public static int GetTaxonomyID( string tModelKey )
|
|
{
|
|
int taxonomyID;
|
|
|
|
Debug.Enter();
|
|
|
|
SqlStoredProcedureAccessor sp = new SqlStoredProcedureAccessor();
|
|
|
|
sp.ProcedureName = "UI_getTaxonomies";
|
|
|
|
sp.Parameters.Add( "@tModelKey", SqlDbType.UniqueIdentifier );
|
|
sp.Parameters.SetGuidFromKey( "@tModelKey", tModelKey );
|
|
|
|
SqlDataReaderAccessor reader = sp.ExecuteReader();
|
|
|
|
try
|
|
{
|
|
if( reader.Read() )
|
|
taxonomyID = reader.GetInt( "taxonomyID" );
|
|
else
|
|
taxonomyID = -1;
|
|
}
|
|
finally
|
|
{
|
|
reader.Close();
|
|
}
|
|
|
|
Debug.Leave();
|
|
return taxonomyID;
|
|
}
|
|
|
|
public static string GetTaxonomyParent( int taxonomyID, string ID )
|
|
{
|
|
Debug.Enter();
|
|
|
|
SqlCommand cmd = new SqlCommand( "UI_getTaxonomyParent", ConnectionManager.GetConnection() );
|
|
cmd.CommandType = CommandType.StoredProcedure;
|
|
|
|
cmd.Transaction = ConnectionManager.GetTransaction();
|
|
cmd.Parameters.Add( new SqlParameter( "@TaxonomyID", SqlDbType.Int ) ).Direction = ParameterDirection.Input;
|
|
cmd.Parameters.Add( new SqlParameter( "@ID", SqlDbType.NVarChar, 450 ) ).Direction = ParameterDirection.Input;
|
|
|
|
SqlParameterAccessor paramacc = new SqlParameterAccessor( cmd.Parameters );
|
|
|
|
paramacc.SetInt( "@TaxonomyID", taxonomyID );
|
|
paramacc.SetString( "@ID", ID );
|
|
|
|
string parent = (string)cmd.ExecuteScalar();
|
|
|
|
Debug.Leave();
|
|
|
|
return parent;
|
|
}
|
|
public static string GetTaxonomyKeyName( int taxonomyID, string keyValue )
|
|
{
|
|
Debug.Enter();
|
|
|
|
SqlCommand cmd = new SqlCommand( "UI_getTaxonomyName", ConnectionManager.GetConnection() );
|
|
cmd.CommandType = CommandType.StoredProcedure;
|
|
|
|
cmd.Transaction = ConnectionManager.GetTransaction();
|
|
cmd.Parameters.Add( new SqlParameter( "@TaxonomyID", SqlDbType.Int ) ).Direction = ParameterDirection.Input;
|
|
cmd.Parameters.Add( new SqlParameter( "@ID", SqlDbType.NVarChar, 450 ) ).Direction = ParameterDirection.Input;
|
|
|
|
SqlParameterAccessor paramacc = new SqlParameterAccessor( cmd.Parameters );
|
|
|
|
paramacc.SetInt( "@TaxonomyID", taxonomyID );
|
|
paramacc.SetString( "@ID", keyValue );
|
|
|
|
string keyName = (string)cmd.ExecuteScalar();
|
|
|
|
|
|
Debug.Leave();
|
|
|
|
return keyName;
|
|
}
|
|
public static DataView GetTaxonomyChildrenNode( int taxonomyID, string node )
|
|
{
|
|
Debug.Enter();
|
|
|
|
DataSet categories = new DataSet();
|
|
|
|
SqlCommand cmd = new SqlCommand( "UI_getTaxonomyChildrenNode", ConnectionManager.GetConnection() );
|
|
cmd.CommandType = CommandType.StoredProcedure;
|
|
|
|
cmd.Transaction = ConnectionManager.GetTransaction();
|
|
cmd.Parameters.Add( new SqlParameter( "@rowCount", SqlDbType.Int ) ).Direction = ParameterDirection.ReturnValue;
|
|
cmd.Parameters.Add( new SqlParameter( "@taxonomyID", SqlDbType.Int ) ).Direction = ParameterDirection.Input;
|
|
cmd.Parameters.Add( new SqlParameter( "@node", SqlDbType.NVarChar, 450 ) ).Direction = ParameterDirection.Input;
|
|
|
|
SqlParameterAccessor paramacc = new SqlParameterAccessor( cmd.Parameters );
|
|
|
|
paramacc.SetInt( "@taxonomyID", taxonomyID );
|
|
paramacc.SetString( "@node", node );
|
|
|
|
SqlDataAdapter adapter = new SqlDataAdapter( cmd );
|
|
|
|
adapter.Fill( categories, "categories" );
|
|
|
|
Debug.Leave();
|
|
|
|
return categories.Tables[ "categories" ].DefaultView;
|
|
}
|
|
|
|
public static DataView GetTaxonomyChildrenRoot( int taxonomyID )
|
|
{
|
|
Debug.Enter();
|
|
|
|
DataSet categories = new DataSet();
|
|
|
|
SqlCommand cmd = new SqlCommand( "UI_getTaxonomyChildrenRoot", ConnectionManager.GetConnection() );
|
|
cmd.CommandType = CommandType.StoredProcedure;
|
|
cmd.Transaction = ConnectionManager.GetTransaction();
|
|
cmd.Parameters.Add( new SqlParameter( "@rowCount", SqlDbType.Int ) ).Direction = ParameterDirection.ReturnValue;
|
|
cmd.Parameters.Add( new SqlParameter( "@taxonomyID", SqlDbType.Int ) ).Direction = ParameterDirection.Input;
|
|
|
|
SqlParameterAccessor paramacc = new SqlParameterAccessor( cmd.Parameters );
|
|
|
|
paramacc.SetInt( "@taxonomyID", taxonomyID );
|
|
|
|
SqlDataAdapter adapter = new SqlDataAdapter( cmd );
|
|
|
|
adapter.Fill( categories, "Categories" );
|
|
|
|
Debug.Leave();
|
|
|
|
return categories.Tables[ "Categories" ].DefaultView;
|
|
}
|
|
|
|
public static bool IsValidForClassification( int taxonomyID, string node )
|
|
{
|
|
Debug.Enter();
|
|
|
|
SqlStoredProcedureAccessor sp = new SqlStoredProcedureAccessor();
|
|
|
|
sp.ProcedureName = "UI_isNodeValidForClassification";
|
|
|
|
sp.Parameters.Add( "@taxonomyID", SqlDbType.Int );
|
|
sp.Parameters.Add( "@node", SqlDbType.NVarChar, 450 );
|
|
|
|
sp.Parameters.SetInt( "@taxonomyID", taxonomyID );
|
|
sp.Parameters.SetString( "@node", node );
|
|
|
|
bool valid = (bool)sp.ExecuteScalar();
|
|
|
|
Debug.Leave();
|
|
|
|
return valid;
|
|
}
|
|
public static void SetTaxonomyBrowsable( string tModelKey, bool enabled )
|
|
{
|
|
SqlStoredProcedureAccessor sp = new SqlStoredProcedureAccessor();
|
|
|
|
sp.ProcedureName = "UI_setTaxonomyBrowsable";
|
|
|
|
sp.Parameters.Add( "@tModelKey", SqlDbType.UniqueIdentifier );
|
|
sp.Parameters.Add( "@enabled", SqlDbType.TinyInt );
|
|
|
|
sp.Parameters.SetGuidFromKey( "@tModelKey", tModelKey );
|
|
sp.Parameters.SetInt( "@enabled", Convert.ToInt32( enabled ) );
|
|
sp.ExecuteNonQuery();
|
|
}
|
|
public static DataTable GetTaxonomiesForBrowsingDataTable()
|
|
{
|
|
Debug.Enter( );
|
|
DataSet taxonomies = new DataSet( );
|
|
|
|
SqlCommand cmd = new SqlCommand( "UI_getBrowsableTaxonomies", ConnectionManager.GetConnection() );
|
|
cmd.CommandType = CommandType.StoredProcedure;
|
|
|
|
cmd.Transaction = ConnectionManager.GetTransaction();
|
|
|
|
SqlDataAdapter adapter = new SqlDataAdapter( cmd );
|
|
|
|
adapter.Fill( taxonomies, "Taxonomies" );
|
|
Debug.Leave();
|
|
return taxonomies.Tables[ "Taxonomies" ];
|
|
}
|
|
public static DataView GetTaxonomiesForBrowsing( )
|
|
{
|
|
Debug.Enter( );
|
|
|
|
DataTable taxonomies = GetTaxonomiesForBrowsingDataTable();
|
|
|
|
Debug.Leave();
|
|
|
|
return taxonomies.DefaultView;
|
|
|
|
}
|
|
public static DataView GetTaxonomiesForBrowsing( string filter, string sort )
|
|
{
|
|
Debug.Enter( );
|
|
|
|
DataTable taxonomies = GetTaxonomiesForBrowsingDataTable();
|
|
DataView view = new DataView( taxonomies, filter, sort, DataViewRowState.OriginalRows );
|
|
|
|
Debug.Leave();
|
|
|
|
return view;
|
|
|
|
}
|
|
|
|
///********************************************************************************************************
|
|
/// <summary>
|
|
/// Used to determine if the current taxonomy object is valid for use in the User Interface for
|
|
/// browsing purposes.
|
|
///
|
|
/// Checks a flag in the database to see if the taxonomy is browsable.
|
|
///
|
|
/// If flag 0x02 is set, then it is browsable.
|
|
/// </summary>
|
|
///********************************************************************************************************
|
|
/// <param name="tModelKey">tModelKey to get</param>
|
|
///********************************************************************************************************
|
|
/// <returns>
|
|
/// boolean indicating that the taxonomy is valid for browsing in the search via the User Interface
|
|
/// </returns>
|
|
///********************************************************************************************************
|
|
public static bool IsValidForBrowsing( string tModelKey )
|
|
{
|
|
bool r = false;
|
|
SqlStoredProcedureAccessor sp = new SqlStoredProcedureAccessor();
|
|
|
|
sp.ProcedureName = "UI_isTaxonomyBrowsable";
|
|
|
|
sp.Parameters.Add( "@tModelKey", SqlDbType.UniqueIdentifier );
|
|
sp.Parameters.Add( "@isBrowsable", SqlDbType.TinyInt, ParameterDirection.Output );
|
|
|
|
sp.Parameters.SetGuidFromKey( "@tModelKey", tModelKey );
|
|
|
|
sp.ExecuteNonQuery();
|
|
|
|
r = sp.Parameters.GetBool( "@isBrowsable" );
|
|
|
|
sp.Close();
|
|
|
|
return r;
|
|
}
|
|
|
|
}
|
|
}
|