Click here to Skip to main content
15,897,704 members
Articles / Web Development / ASP.NET

Navigational Workflows Unleashed in WWF/ASP.NET 3.5

Rate me:
Please Sign up or sign in to vote.
4.97/5 (42 votes)
21 Oct 2008CPOL18 min read 226.4K   1.6K   165  
Case-study on the internals of a Navigational Workflow engine for a fictional dating website called “World Wide Dating”.
using System;

namespace DateSite
{
    /// <summary>
    /// This Control is used purely for debugging. It serves no other purpose.
    /// </summary>
    public partial class DebuggingPane : System.Web.UI.UserControl
    {
        private WorkflowManager _workflowManager;

        /// <summary>
        /// Page load code.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            // initialize the workflow manager
            _workflowManager = new WorkflowManager(Application, Session, Request, Response);

            // update debug information
            Update();
        }

        /// <summary>
        /// Updates this control with debug information.
        /// </summary>
        public void Update()
        {
            // get a reference to the concrete Master page
            DateSiteMaster dateSiteMaster = this.Page.Master as DateSiteMaster;

            // update labels with debug information
            lblDatingId.Text = dateSiteMaster.DatingId == string.Empty ? "[unknown]" : Session["datingId"] as string;
            lblWorkflowState.Text = _workflowManager.CurrentWorkflowState == string.Empty ? "[unknown]" : _workflowManager.CurrentWorkflowState;
            lblWorkflowId.Text = _workflowManager.CurrentWorkflowInstanceId.ToString();
            lblDateTime.Text = DateTime.Now.ToString();
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Founder Turing Inc.
United States United States

Comments and Discussions