Code to Read a Pipeline Collection and Display Its Properties
Use the following code to read a pipeline collection and display the Name, Logpath, PipelineConfigPath, LoggingEnabled, and optionally the TransactionalSetting properties. The code should be used within a Commerce Server project. For more information about creating a Commerce Server project, see Creating a Commerce Project.
<%@ Page Language="C#" Debug=true%>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Pipelines" %>
<script language="C#" >
void Page_Load(object source, EventArgs args)
{
if (!IsPostBack)
{
DisplayPipelines();
btnProperties.Text = "Display Properties";
}
}
///
/// This function gets the pipeline collection and binds it
/// to the drop-down list.
///
void DisplayPipelines()
{
try
{
PipelineCollection pipesCollection = null;
// Check that the CommerceContext object for this request
// is not null.
if (CommerceContext.Current == null)
{
throw new Exception("CommerceContext object is null.Please check settings in web.config");
}
// Get the pipeline collection.
pipesCollection = CommerceContext.Current.Pipelines;
// pipesCollection.Count contains the number of pipelines.
string[] pipeArray = new string[pipesCollection.Count];
int pipeIndex =0;
// Iterate through the pipeline collection and
// build the string array.
foreach (PipelineBase pipe in pipesCollection)
{
pipeArray[pipeIndex++] = pipe.Name;
}
// Bind the array to the drop-down list.
lbPipelines.DataSource = pipeArray;
lbPipelines.DataBind();
}
catch(Exception ex)
{
// Exception handling.
throw new Exception("An error occurred", ex);
}
}
///
/// This function displays the properties for the selected pipeline.
///
void DisplayPropertiesBtn_Click(object source, EventArgs args)
{
string pipeName;
PipelineBase pipe ;
try
{
PipelineCollection pipesCollection = null;
// Check that the CommerceContext object for this request
// is not null.
if (CommerceContext.Current == null)
{
throw new Exception("CommerceContext object is null.");
}
// Get the pipeline collection.
pipesCollection = CommerceContext.Current.Pipelines;
// Get the pipeline name whose properties are to be displayed.
pipeName = lbPipelines.SelectedItem.Text.Trim();
// Index the pipeline collection using the pipeline name to get the
// properties for this pipeline.
pipe = pipesCollection[pipeName];
// Display the Name, Logpath, PipelineConfigPath, and
// LoggingEnabled properties.
lblPipeName.Text = String.Format("Pipeline Name = {0}", pipe.Name);
lblLogPath.Text = String.Format("Log Path = {0}", pipe.LogPath);
lblConfigPath.Text = String.Format("Config Path = {0}", pipe.PipelineConfigPath);
lblLoggingEnabled.Text = String.Format("LoggingEnabled = {0}", pipe.LoggingEnabled);
// Check if this is an order pipeline.
OrderPipeline orderPipeline = pipe as OrderPipeline;
//If it is an order pipeline, display the
// TransactionalSetting property also.
if (orderPipeline != null)
{
lblTransactional.Visible = true;
lblTransactional.Text = String.Format("Transactonal = {0}", orderPipeline.TransactionalSetting);
}
else
{
lblTransactional.Visible = false;
}
}
catch(Exception ex)
{
throw new Exception("An error occurred", ex);
}
}
</script>
<html>
<head>
<title>Pipeline Collection</title>
</head>
<body>
<form >
<asp:DropDownList id="lbPipelines" />
<asp:Button id="btnProperties" OnClick="DisplayPropertiesBtn_Click" />
<asp:table width="500" Runat="server">
<asp:tablerow>
<asp:tablecell>
<asp:Label width="100%" id="lblPipeName" />
</asp:tablecell>
</asp:tablerow>
<asp:tablerow>
<asp:tablecell>
<asp:Label width="100%" id="lblLogPath" />
</asp:tablecell>
</asp:tablerow>
<asp:tablerow>
<asp:tablecell>
<asp:Label width="100%" id="lblConfigPath" />
</asp:tablecell>
</asp:tablerow>
<asp:tablerow>
<asp:tablecell>
<asp:Label width="100%" id="lblLoggingEnabled" />
</asp:tablecell>
</asp:tablerow>
<asp:tablerow>
<asp:tablecell>
<asp:Label width="100%" id="lblTransactional" />
</asp:tablecell>
</asp:tablerow>
</asp:table>
</form>
</body>
</html>
Copyright © 2005 Microsoft Corporation.
All rights reserved.