Darkleo’s Blog
Ein Schatz, der seinen Besitzer überallhin begleitet.

WCSF - PageFlow Suspend and Resume by UserID

April 1st, 2008 by darkleo

Die Aufgabe ist es die Arbeitsabläufe zu speichern um später weiter zu arbeiten und vielleicht auch weiter zu delegieren.

Wir speichern jeden Vorgang mit dem Benutzernamen ab dazu erstellen wir UserCorrelationTokenProvider was wir später über die Web.config noch bekannt geben werden.

public class UserCorrelationTokenProvider :
 
IPageFlowCorrelationTokenProvider
{
public string GetCorrelationToken()
{
return HttpContext.Current.User.Identity.Name;}
}

Eine Procedure für die Ausgabe aller Instancen mit der UserID als Parameter:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
CREATE PROCEDURE [dbo].[pageFlow_GetAllInstanceByCorrelationToken]
@correlationToken NVARCHAR(256)
AS
BEGIN
SELECT * FROM  dbo.pageFlow_InstanceStore WHERE
CorrelationToken = @correlationToken
END
GO

Zugriff auf die Procedure:

public List<PageFlowInstanceItem> GetInstancesList()
{
List<PageFlowInstanceItem> result = new List<PageFlowInstanceItem>();
using (SqlConnection conn = new SqlConnection(
@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=
WCSF_QuickStart;Data Source=.\SQLExpress"
))
{
 using (SqlCommand command = new SqlCommand("pageFlow_GetAllInstanceByCorrelationToken", conn))
 {
  command.CommandType =
CommandType.StoredProcedure;
  SqlParameter IdIn = command.Parameters.Add("@correlationToken", SqlDbType.VarChar, 255);
  IdIn.Direction =
ParameterDirection.Input;
  IdIn.Value =
HttpContext.Current.User.Identity.Name;
  conn.Open();
  using (SqlDataReader reader = command.ExecuteReader())
  {
   while (reader.Read())
   {
    result.Add(
new PageFlowInstanceItem(
    "Beschreibung",
    reader[
"InstanceID"].ToString(),
    reader[
"Type"].ToString()));
   }
  }
 }
}
return result;
}

Hiermit ist es möglich die Liste der PageFlows zu lesen, jetzt nur noch aufwecken
IPageFlow flow = PageFlowDirectory.Provider.GetPageFlow(instanceID);
flow.Resume();
flow.RedirectToCurrentPage();

Fertig.

WCSF: www.codeplex.com/websf

Posted in .NET, ASP.NET, C#, WCSF

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.