[Nmailserver-commits] SF.net SVN: nmailserver: [90] NMail/trunk/NMail
Brought to you by:
dframpton-oss,
tmyroadctfig
|
From: <tmy...@us...> - 2006-11-23 11:08:00
|
Revision: 90
http://svn.sourceforge.net/nmailserver/?rev=90&view=rev
Author: tmyroadctfig
Date: 2006-11-23 03:08:00 -0800 (Thu, 23 Nov 2006)
Log Message:
-----------
Added a get message Ids function to the localstore.
Modified Paths:
--------------
NMail/trunk/NMail/DataTypes/LocalStore/ILocalStore.cs
NMail/trunk/NMail/DataTypes/LocalStore/ILocalStoreData.cs
NMail/trunk/NMail.LocalStore/LocalStore.cs
NMail/trunk/NMail.LocalStoreData.MySql/MySqlLocalStoreData.cs
Modified: NMail/trunk/NMail/DataTypes/LocalStore/ILocalStore.cs
===================================================================
--- NMail/trunk/NMail/DataTypes/LocalStore/ILocalStore.cs 2006-11-22 13:26:03 UTC (rev 89)
+++ NMail/trunk/NMail/DataTypes/LocalStore/ILocalStore.cs 2006-11-23 11:08:00 UTC (rev 90)
@@ -16,6 +16,7 @@
*/
using System;
+using System.Collections.Generic;
using NMail.Authentication;
using NMail.DataTypes;
@@ -208,6 +209,14 @@
/// <param name="folder">The folder the message is in.</param>
/// <returns>The message offset or 0 if there is no such message.</returns>
int GetMessageOffset(IAuthenticationToken authToken, int messageId, StoreFolder folder);
+
+ /// <summary>
+ /// Gets a list of message Ids for a given folder.
+ /// </summary>
+ /// <param name="authToken">The authentication credentials.</param>
+ /// <param name="folder">The folder the message is in.</param>
+ /// <returns>The list of messages in the folder.</returns>
+ List<int> GetMessageIds(IAuthenticationToken authToken, StoreFolder folder);
#endregion
#region Message Flags
Modified: NMail/trunk/NMail/DataTypes/LocalStore/ILocalStoreData.cs
===================================================================
--- NMail/trunk/NMail/DataTypes/LocalStore/ILocalStoreData.cs 2006-11-22 13:26:03 UTC (rev 89)
+++ NMail/trunk/NMail/DataTypes/LocalStore/ILocalStoreData.cs 2006-11-23 11:08:00 UTC (rev 90)
@@ -16,6 +16,7 @@
*/
using System;
+using System.Collections.Generic;
using System.Data;
using NMail.DataTypes;
@@ -156,6 +157,13 @@
/// <param name="folder">The folder the message is in.</param>
/// <returns>The message offset or 0 if there is no such message.</returns>
int GetMessageOffset(int messageId, StoreFolder folder);
+
+ /// <summary>
+ /// Gets a list of message Ids for a given folder.
+ /// </summary>
+ /// <param name="folder">The folder the message is in.</param>
+ /// <returns>The list of messages in the folder.</returns>
+ List<int> GetMessageIds(StoreFolder folder);
#endregion
#region Message Flags
Modified: NMail/trunk/NMail.LocalStore/LocalStore.cs
===================================================================
--- NMail/trunk/NMail.LocalStore/LocalStore.cs 2006-11-22 13:26:03 UTC (rev 89)
+++ NMail/trunk/NMail.LocalStore/LocalStore.cs 2006-11-23 11:08:00 UTC (rev 90)
@@ -692,7 +692,23 @@
}
}
#endregion
+
+ #region Get Message Ids
+
+ public List<int> GetMessageIds(IAuthenticationToken authToken, StoreFolder folder) {
+
+ // Ensure the user has rights to get the message Id
+ if (hasFolderPrivilege(authToken.Username, folder.FolderId, StoreFolderPrivilege.Read)) {
+
+ // Return the message Id
+ return LocalStoreData.GetMessageIds(folder);
+
+ } else {
+ return new List<int>();
+ }
+ }
#endregion
+ #endregion
#region Message Flags
#region Get Message Flags
Modified: NMail/trunk/NMail.LocalStoreData.MySql/MySqlLocalStoreData.cs
===================================================================
--- NMail/trunk/NMail.LocalStoreData.MySql/MySqlLocalStoreData.cs 2006-11-22 13:26:03 UTC (rev 89)
+++ NMail/trunk/NMail.LocalStoreData.MySql/MySqlLocalStoreData.cs 2006-11-23 11:08:00 UTC (rev 90)
@@ -559,7 +559,28 @@
}
#endregion
+ #region GetMessageIds
+ public List<int> GetMessageIds(StoreFolder folder) {
+ List<int> result = new List<int>();
+
+ using (MySqlConnection cnn = MySqlHelper.GetConnection()) {
+ using (MySqlCommand cmd = cnn.CreateCommand()) {
+ cmd.CommandText = "SELECT FolderMessageId FROM Message WHERE FolderId = ?FolderId";
+ cmd.Parameters.Add("?FolderId", folder.FolderId);
+
+ MySqlDataReader reader = cmd.ExecuteReader();
+
+ while (reader.Read()) {
+ int id = (int) reader["FolderMessageId"];
+ result.Add(id);
+ }
+ }
+ }
+
+ return result;
+ }
#endregion
+ #endregion
#region Message Flags
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|