Revision: 108
http://svn.sourceforge.net/nmailserver/?rev=108&view=rev
Author: tmyroadctfig
Date: 2007-01-08 04:54:11 -0800 (Mon, 08 Jan 2007)
Log Message:
-----------
Changed to work with webservices. Work on remote access webservice.
Modified Paths:
--------------
NMail/trunk/NMail.RemoteAccessService/App_Code/RemoteAccessService.cs
NMail/trunk/NMail.RemoteAccessService.Serializers/DataTypes/LocalStore/StoreFolderSerializer.cs
Modified: NMail/trunk/NMail.RemoteAccessService/App_Code/RemoteAccessService.cs
===================================================================
--- NMail/trunk/NMail.RemoteAccessService/App_Code/RemoteAccessService.cs 2007-01-03 01:49:14 UTC (rev 107)
+++ NMail/trunk/NMail.RemoteAccessService/App_Code/RemoteAccessService.cs 2007-01-08 12:54:11 UTC (rev 108)
@@ -63,8 +63,23 @@
}
[WebMethod]
- public void DoSomething(StoreFolderSerializer folder)
+ public List<StoreFolderSerializer> GetSubscribedFolders(string authToken)
{
+ IAuthenticationToken token = ValidateAuthenticationToken(authToken);
+ if (token != null)
+ {
+ List<StoreFolder> subscribed = new List<StoreFolder>(ServiceState.remoteAdmin.NMailServer.LocalStore.GetSubscribed(token, "*"));
+ List<StoreFolderSerializer> result = new List<StoreFolderSerializer>();
+
+ foreach (StoreFolder folder in subscribed)
+ {
+ result.Add(new StoreFolderSerializer(folder));
+ }
+
+ return result;
+ }
+
+ throw new InvalidOperationException("Authentication token is not valid.");
}
protected IAuthenticationToken ValidateAuthenticationToken(string authToken)
Modified: NMail/trunk/NMail.RemoteAccessService.Serializers/DataTypes/LocalStore/StoreFolderSerializer.cs
===================================================================
--- NMail/trunk/NMail.RemoteAccessService.Serializers/DataTypes/LocalStore/StoreFolderSerializer.cs 2007-01-03 01:49:14 UTC (rev 107)
+++ NMail/trunk/NMail.RemoteAccessService.Serializers/DataTypes/LocalStore/StoreFolderSerializer.cs 2007-01-08 12:54:11 UTC (rev 108)
@@ -11,59 +11,61 @@
/// A simple XML serializer for the store folder type.
/// </summary>
[XmlRoot("StoreFolder")]
- public class StoreFolderSerializer : IXmlSerializable {
+ [SoapType(IncludeInSchema=true, Namespace="http://nmailserver.sf.net/RemoteAccessService/1.0", TypeName="StoreFolder")]
+ public class StoreFolderSerializer {
public StoreFolderSerializer() { }
public StoreFolderSerializer(StoreFolder storeFolder) {
- this.storeFolder = storeFolder;
+ this.folderId = storeFolder.FolderId;
+ this.name = storeFolder.FolderName;
+ this.nameSpace = storeFolder.NameSpace;
+ this.hasChildren = storeFolder.HasChildren;
+ this.parentId = storeFolder.ParentId;
}
- private StoreFolder storeFolder;
+ private int folderId;
- public StoreFolder StoreFolder {
- get { return storeFolder; }
- set { storeFolder = value; }
- }
+ public int FolderId
+ {
+ get { return folderId;}
+ set { folderId = value;}
+ }
+
+ private string name;
- #region IXmlSerializable Members
+ public string Name
+ {
+ get { return name;}
+ set { name = value;}
+ }
+
+ private string nameSpace;
- public System.Xml.Schema.XmlSchema GetSchema() {
- return null;
+ public string NameSpace
+ {
+ get { return nameSpace;}
+ set { nameSpace = value;}
}
- public void ReadXml(XmlReader reader) {
- //reader.ReadStartElement("StoreFolder");
+ private bool hasChildren;
- reader.MoveToAttribute("FolderId");
- int folderId = Int32.Parse(reader.Value);
-
- reader.MoveToAttribute("Name");
- string name = reader.Value;
-
- reader.MoveToAttribute("NameSpace");
- string nameSpace = reader.Value;
-
- int? parentId = null;
- if (reader.MoveToAttribute("ParentId")) {
- parentId = Int32.Parse(reader.Value);
- }
-
- reader.MoveToAttribute("HasChildren");
- bool hasChildren = Boolean.Parse(reader.Value);
-
- this.storeFolder = new StoreFolder(nameSpace, name, folderId, parentId, hasChildren);
+ public bool HasChildren
+ {
+ get { return hasChildren;}
+ set { hasChildren = value;}
}
+
+ private int? parentId;
- public void WriteXml(XmlWriter writer) {
- writer.WriteAttributeString("FolderId", this.storeFolder.FolderId.ToString());
- writer.WriteAttributeString("Name", this.storeFolder.FolderName);
- writer.WriteAttributeString("NameSpace", this.storeFolder.NameSpace);
- writer.WriteAttributeString("HasChildren", this.storeFolder.HasChildren.ToString());
- if (this.storeFolder.ParentId.HasValue) {
- writer.WriteAttributeString("ParentId", this.storeFolder.ParentId.Value.ToString());
- }
+ public int? ParentId
+ {
+ get { return parentId;}
+ set { parentId = value;}
}
- #endregion
+
+ public StoreFolder GetStoreFolder() {
+ return new StoreFolder(this.nameSpace, this.name, this.folderId, this.parentId, this.hasChildren);
+ }
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|