- virtualserviceforesb_src.zip
- VirtualService
- ESB
- Contracts
- Core
- Extensions
- NullChannelLib
- NullChannelLib.dll
- Hosting
- VirtualServiceHost
- Mediators
- MediatorActivityLibrary
- WS
- WSEventing
- WSEventingActivity
- WSTransfer
- WSTransferActivity
- license.rtf
- Logs
- Test
- Client
- Host
- Logger
- Tester
- VirtualService
- App_Code
- App_Data
- Bin
- ESB.Contracts.dll
- ESB.Core.dll
- ESB.MediatorActivityLibrary.dll
- Logger.dll
- NullChannelLib.dll
- WorkflowLibrary1.dll
- WSTransfer.dll
- WSTransferActivity.dll
- Service1.svc
- Service12.svc
- Service123.svc
- Web.config
- WorkflowLibrary1
- VirtualService.sln
|
//*****************************************************************************
// Description.....Example(s) of the DataContract for WS-Transfer Messages
//
// Author..........Roman Kiss, rkiss@pathcom.com
// Copyright � 2005 ATZ Consulting Inc. (see included license.rtf file)
//
// Date Created: 06/06/05
//
// Date Modified By Description
//-----------------------------------------------------------------------------
// 06/06/05 Roman Kiss Initial Revision
// 01/20/06 Roman Kiss migrating to JanCTP (Go-Live)
// 03/03/06 Roman Kiss migrating to FebCTP
// 04/04/06 Roman Kiss making classes Serializable + more properties
// 07/07/06 Roman Kiss migrating to JuneCTP
// 07/07/07 Roman Kiss netfx 3.0
// 07/12/07 Roman Kiss updating to WS-ResourceTransfer
//*****************************************************************************
//
#region References
using System;
using System.Collections;
using System.Collections.Generic;
using System.ServiceModel;
using System.Runtime.Serialization;
using System.Xml;
using System.Xml.Serialization;
#endregion
namespace RKiss.WSTransfer
{
/// <summary>
/// Example of the DataContract for WS-Transfer operation
/// </summary>
//[XmlSerializerFormat]
[XmlRoot(ElementName = "ResourceDescriptor", Namespace = "http://www.rkiss.net/schemas/sb/2005/06/servicebus")]
[DataContract(Name = ResourceDescriptor.DataContractName, Namespace = ResourceDescriptor.DataContractNamespace)]
[Serializable]
public class ResourceDescriptor
{
#region constants
public const string DataContractName = "ResourceDescriptor";
public const string DataContractNamespace = "http://www.rkiss.net/schemas/sb/2005/06/servicebus";
public static XmlQualifiedName XmlQualifiedName
{
get { return new XmlQualifiedName(DataContractName, DataContractNamespace); }
}
#endregion
#region DataMembers
string _id;
string _name;
string _key;
string _topic;
DateTime _expires;
DateTime _created;
DateTime _updated;
#endregion
#region Properties
[DataMember(Order = 0)]
public string Id
{
get { return _id; }
set { _id = value; }
}
[DataMember(Order = 1)]
public string Name
{
get { return _name; }
set { _name = value; }
}
[DataMember(Order = 2)]
public string Topic
{
get { return _topic; }
set { _topic = value; }
}
[DataMember(Order = 3)]
public string Key
{
get { return _key; }
set { _key = value; }
}
//[DataMember(Order = 4)]
[XmlIgnore]
public DateTime Expires
{
get { return _expires; }
set { _expires = value; }
}
//[DataMember(Order = 5)]
[XmlIgnore]
public DateTime Created
{
get { return _created; }
set { _created = value; }
}
//[DataMember(Order = 6)]
[XmlIgnore]
public DateTime Updated
{
get { return _updated; }
set { _updated = value; }
}
#endregion
#region Constructors
public ResourceDescriptor() { _id = new UniqueId().ToString(); }
public ResourceDescriptor(UniqueId id) { _id = id.ToString(); }
public ResourceDescriptor(UniqueId id, DateTime expires) { _id = id.ToString(); _expires = expires; }
public ResourceDescriptor(ResourceDescriptor rd)
{
if (rd != null)
{
// copy instance
if (rd.Id != null)
_id = new UniqueId(rd.Id).ToString();
if (rd.Name != null)
_name = string.Copy(rd.Name);
if (rd.Key != null)
_key = string.Copy(rd.Key);
if (rd.Topic != null)
_topic = string.Copy(rd.Topic);
Expires = rd.Expires;
Created = rd.Created;
Updated = rd.Updated;
}
}
#endregion
#region Static methods
public static ResourceDescriptor Create(string topic, string key, TimeSpan expires)
{
ResourceDescriptor rd = new ResourceDescriptor();
rd.Topic = topic;
rd.Key = key;
rd.Created = DateTime.Now;
rd.Expires = rd.Created + expires;
return rd;
}
public static string FullQName
{
get { return "ResourceDescriptor xmlns=\"http://www.rkiss.net/schemas/sb/2005/06/servicebus\""; }
}
#endregion
}
[XmlRoot(ElementName = "Created", Namespace = "http://www.rkiss.net/schemas/sb/2005/06/servicebus")]
[Serializable]
public class Created : IXmlSerializable
{
#region Properties
DateTime _value;
public DateTime Value
{
get { return _value; }
set { _value = value; }
}
#endregion
#region Constructors
public Created()
{
}
public Created(DateTime value)
{
_value = value;
}
#endregion
#region Static methods
public static Created Now
{
get {return new Created(DateTime.Now);}
}
public static string FullQName
{
get { return "Created xmlns=\"http://www.rkiss.net/schemas/sb/2005/06/servicebus\""; }
}
#endregion
#region IXmlSerializable Members
public System.Xml.Schema.XmlSchema GetSchema()
{
return null;
}
public void ReadXml(XmlReader reader)
{
_value = reader.ReadElementContentAsDateTime("Created", "http://www.rkiss.net/schemas/sb/2005/06/servicebus");
}
public void WriteXml(XmlWriter writer)
{
writer.WriteString(XmlConvert.ToString(_value, XmlDateTimeSerializationMode.Local));
}
#endregion
}
/// <summary>
/// Example of the DataContract for WS-Transfer factory (Create)
/// </summary>
[XmlSchemaProvider(null, IsAny = true)]
[XmlRoot(ElementName = "CreateResource", Namespace = "http://www.rkiss.net/schemas/sb/2005/06/servicebus", IsNullable = true)]
[Serializable]
public class CreateResource : IXmlSerializable
{
#region DataMembers
ResourceDescriptor _resourceDescriptor;
object _resourceBody;
#endregion
#region Properties
public ResourceDescriptor ResourceDescriptor
{
get { return _resourceDescriptor; }
set { _resourceDescriptor = value; }
}
public object Resource
{
get { return _resourceBody; }
set { _resourceBody = value; }
}
#endregion
#region Constructors
public CreateResource() : this(null, null) { }
public CreateResource(ResourceDescriptor resourceDescriptor) : this(resourceDescriptor, null) { }
public CreateResource(ResourceDescriptor resourceDescriptor, object resource)
{
ResourceDescriptor = resourceDescriptor;
Resource = resource;
}
public CreateResource(XmlReader reader)
{
this.ReadXml(reader);
}
#endregion
#region Static methods
public static CreateResource Create(ResourceDescriptor resourceDescriptor, object resource)
{
return new CreateResource(resourceDescriptor, resource);
}
public static string FullQName
{
get { return "CreateResource xmlns=\"http://www.rkiss.net/schemas/sb/2005/06/servicebus\""; }
}
public static string XpathExpression(string topic, string key)
{
if ((string.IsNullOrEmpty(topic) || topic == "*") && (!string.IsNullOrEmpty(key) && key != "*"))
return string.Format("[name(.)='tp:CreateResource' and namespace-uri()='http://www.rkiss.net/schemas/sb/2005/06/servicebus'][*[local-name()='ResourceDescriptor']/*[local-name()='Key']='{0}']", key);
if ((!string.IsNullOrEmpty(topic) && topic != "*") && (string.IsNullOrEmpty(key) || key == "*"))
return string.Format("[name(.)='tp:CreateResource' and namespace-uri()='http://www.rkiss.net/schemas/sb/2005/06/servicebus'][*[local-name()='ResourceDescriptor']/*[local-name()='Topic']='{0}']", topic);
if ((string.IsNullOrEmpty(topic) || topic == "*") && (string.IsNullOrEmpty(key) || key == "*"))
return "[name(.)='tp:CreateResource' and namespace-uri()='http://www.rkiss.net/schemas/sb/2005/06/servicebus']";
return string.Format("[name(.)='tp:CreateResource' and namespace-uri()='http://www.rkiss.net/schemas/sb/2005/06/servicebus'][*[local-name()='ResourceDescriptor'][./*[local-name()='Topic']='{0}' and ./*[local-name()='Key']='{1}']]", topic, key);
}
#endregion
#region IXmlSerializable Members
public System.Xml.Schema.XmlSchema GetSchema()
{
return null;
}
public void ReadXml(XmlReader reader)
{
reader.ReadStartElement("CreateResource", "http://www.rkiss.net/schemas/sb/2005/06/servicebus");
while (reader.NodeType != XmlNodeType.EndElement)
{
// ResourceDescriptor
DataContractSerializer dcs = new DataContractSerializer(typeof(ResourceDescriptor));
ResourceDescriptor = dcs.ReadObject(reader) as ResourceDescriptor;
// Resource
XmlDocument doc = new XmlDocument();
doc.Load(reader);
Resource = doc.DocumentElement;
reader.MoveToContent();
}
}
public void WriteXml(XmlWriter writer)
{
writer.WriteStartElement("tp", "CreateResource", "http://www.rkiss.net/schemas/sb/2005/06/servicebus");
if (ResourceDescriptor != null)
{
XmlSerializer xs = new XmlSerializer(ResourceDescriptor.GetType());
xs.Serialize(writer, ResourceDescriptor);
}
if (Resource != null)
{
writer.WriteStartElement("tp", "Resource", "http://www.rkiss.net/schemas/sb/2005/06/servicebus");
XmlSerializer xs = new XmlSerializer(Resource.GetType());
xs.Serialize(writer, Resource);
writer.WriteEndElement();
}
writer.WriteEndElement();
}
#endregion
}
[XmlSchemaProvider(null, IsAny = true)]
[XmlRoot(ElementName = "CreateResources", Namespace = "http://www.rkiss.net/schemas/sb/2005/06/servicebus", IsNullable = true)]
[Serializable]
public class CreateResources : List<CreateResource>, IXmlSerializable
{
#region Static methods
public static string FullQName
{
get { return "CreateResources xmlns=\"http://www.rkiss.net/schemas/sb/2005/06/servicebus\""; }
}
#endregion
#region IXmlSerializable Members
public System.Xml.Schema.XmlSchema GetSchema()
{
return null;
}
public void ReadXml(XmlReader reader)
{
reader.ReadStartElement("CreateResources", "http://www.rkiss.net/schemas/sb/2005/06/servicebus");
while (reader.NodeType != XmlNodeType.EndElement)
{
CreateResource cr = new CreateResource(reader);
this.Add(cr);
reader.MoveToContent();
}
}
public void WriteXml(XmlWriter writer)
{
writer.WriteStartElement("tp", "CreateResources", "http://www.rkiss.net/schemas/sb/2005/06/servicebus");
foreach (CreateResource cr in this)
{
cr.WriteXml(writer);
}
writer.WriteEndElement();
}
#endregion
}
}
|
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.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.