Leaked source code of windows server 2003
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.
 
 
 
 
 
 

169 lines
4.9 KiB

using System;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using UDDI;
using UDDI.API;
using UDDI.API.Business;
using UDDI.API.Service;
using UDDI.API.ServiceType;
using UDDI.Diagnostics;
namespace UDDI.Web
{
public class ServiceControl : UddiControl
{
protected BusinessServiceCollection services;
private BusinessServiceCollection bindableServices;
private BusinessServiceCollection bindableServiceProjections;
protected BusinessEntity parent;
protected bool frames;
protected string parentKey;
protected DataGrid grid;
protected DataGrid projectionsGrid;
public void Initialize( BusinessServiceCollection services, string parentKey )
{
this.services = services;
this.parentKey = parentKey;
this.parent = null;
InitializeBindableData();
grid.Columns[ 0 ].Visible = false;
grid.Columns[ 1 ].Visible = false;
grid.Columns[ 2 ].Visible = true;
grid.ShowFooter = false;
projectionsGrid.Columns[ 0 ].Visible = false;
projectionsGrid.Columns[ 1 ].Visible = false;
projectionsGrid.Columns[ 2 ].Visible = true;
}
public void Initialize( BusinessServiceCollection services, BusinessEntity parent )
{
this.services = services;
this.parent = parent;
this.parentKey = parent.BusinessKey;
InitializeBindableData();
grid.Columns[ 0 ].Visible = true;
grid.Columns[ 1 ].Visible = true;
grid.Columns[ 2 ].Visible = false;
grid.ShowFooter = true;
projectionsGrid.Columns[ 0 ].Visible = true;
projectionsGrid.Columns[ 1 ].Visible = true;
projectionsGrid.Columns[ 2 ].Visible = false;
}
private void InitializeBindableData( )
{
//
// Fix to filter out service projections
//
bindableServices = new BusinessServiceCollection();
bindableServiceProjections = new BusinessServiceCollection();
foreach( BusinessService s in services )
{
if( s.BusinessKey!=parentKey )
{
bindableServiceProjections.Add( s );
}
else
{
bindableServices.Add( s );
}
}
}
protected void Page_Load( object sender, EventArgs e )
{
frames = ( "true" == Request[ "frames" ] );
PopulateDataGrid();
}
void PopulateDataGrid()
{
projectionsGrid.DataSource = bindableServiceProjections;
projectionsGrid.DataBind();
grid.DataSource = bindableServices;
// commented for service projection fix.
//grid.DataSource = services;
grid.DataBind();
}
protected void ServiceProjection_View( object sender, DataGridCommandEventArgs e )
{
string key = bindableServiceProjections[ e.Item.ItemIndex ].ServiceKey;
string root = ((Request.ApplicationPath=="/")?"":Request.ApplicationPath );
if( frames )
{
string explkey = "sp:" + bindableServiceProjections[ e.Item.ItemIndex ].BusinessKey + ":" + key;
Response.Write(
ClientScripts.ReloadExplorerAndViewPanes( root+"/details/servicedetail.aspx?projectionContext=edit&frames=true&projectionKey="+parentKey+"&key=" + key, explkey ) );
Response.End();
}
else
{
Response.Redirect( "editservice.aspx?frames=false&key=" + key );
Response.End();
}
}
protected void Service_Edit( object sender, DataGridCommandEventArgs e )
{
string key = bindableServices[ e.Item.ItemIndex ].ServiceKey;
if( frames )
{
Response.Write(
ClientScripts.ReloadExplorerAndViewPanes( "editservice.aspx?frames=true&key=" + key, key ) );
Response.End();
}
else
{
Response.Redirect( "editservice.aspx?frames=false&key=" + key );
Response.End();
}
}
protected void Service_Delete( object sender, DataGridCommandEventArgs e )
{
string name = bindableServices[ e.Item.ItemIndex ].Names[ 0 ].Value;
string key = bindableServices[ e.Item.ItemIndex ].ServiceKey;
//
// The user has not yet confirmed the delete operation, so display
// a confirmation dialog.
//
string message = String.Format(
Localization.GetString( "TEXT_DELETE_CONFIRMATION" ),
name );
Page.RegisterStartupScript(
"Confirm",
ClientScripts.Confirm(
message,
"editservice.aspx?frames=" + ( frames ? "true" : "false" ) + "&key=" + key + "&mode=delete&confirm=true&tab=1" ) );
}
protected void Service_Add( object sender, EventArgs e )
{
Response.Redirect( "editservice.aspx?frames=" + ( frames ? "true" : "false" ) + "&key=" + parent.BusinessKey + "&mode=add" );
}
}
}