Update of /cvsroot/csmaild/csmaild/src/Common/MailstoreProviders
In directory sc8-pr-cvs1:/tmp/cvs-serv28711/src/Common/MailstoreProviders
Modified Files:
IMailstoreProvider.cs XmlMailstoreProvider.cs
Log Message:
MailStoreProvider now requires insertion capabilities of a mailbox
Mailbox has some accessor properties for getting some information IMAP likes to send out
SELECT command uses new accessors
Index: IMailstoreProvider.cs
===================================================================
RCS file: /cvsroot/csmaild/csmaild/src/Common/MailstoreProviders/IMailstoreProvider.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** IMailstoreProvider.cs 25 Jul 2003 03:39:12 -0000 1.2
--- IMailstoreProvider.cs 27 Jul 2003 16:52:19 -0000 1.3
***************
*** 18,21 ****
--- 18,23 ----
#endregion
+ #region Mailbox stuff
+
#region Mailbox accessors
/// <summary>
***************
*** 39,42 ****
--- 41,50 ----
/// <returns>An array containing the mailboxes (valid array of size 0 if none)</returns>
Mailbox[] GetMailboxes(Mailbox parent);
+ #endregion
+
+ #region Mailbox modifieres
+ bool InsertMailbox(Mailbox mbx);
+ #endregion
+
#endregion
Index: XmlMailstoreProvider.cs
===================================================================
RCS file: /cvsroot/csmaild/csmaild/src/Common/MailstoreProviders/XmlMailstoreProvider.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** XmlMailstoreProvider.cs 25 Jul 2003 23:35:24 -0000 1.3
--- XmlMailstoreProvider.cs 27 Jul 2003 16:52:19 -0000 1.4
***************
*** 34,37 ****
--- 34,39 ----
#endregion
+ #region Mailbox stuff
+
#region Mailbox accessors
public Mailbox GetMailbox(User user, string absoluteHiearchicalName)
***************
*** 39,43 ****
DataSet ds = new DataSet();
ds.ReadXml(mFolderPath + "Mailboxes.xml");
! DataRow[] boxes = ds.Tables[0].Select("FullName = '" + absoluteHiearchicalName + "'");
if(boxes.Length == 0)
--- 41,45 ----
DataSet ds = new DataSet();
ds.ReadXml(mFolderPath + "Mailboxes.xml");
! DataRow[] boxes = ds.Tables[0].Select("FullName = '" + absoluteHiearchicalName + "' AND UserIdentifier = '" + user.Username + "'");
if(boxes.Length == 0)
***************
*** 47,51 ****
return new Mailbox(this, box["Name"] as string, box["FullName"] as string, uint.Parse(box["NextUniqueId"] as string), uint.Parse(box["UniqueIdValidity"] as string), user);
}
!
public Mailbox[] GetMailboxes(User user)
{
--- 49,53 ----
return new Mailbox(this, box["Name"] as string, box["FullName"] as string, uint.Parse(box["NextUniqueId"] as string), uint.Parse(box["UniqueIdValidity"] as string), user);
}
!
public Mailbox[] GetMailboxes(User user)
{
***************
*** 53,61 ****
ds.ReadXml(mFolderPath + "Mailboxes.xml");
! Mailbox[] boxes = new Mailbox[ds.Tables[0].Rows.Count];
! for(int idx = 0; idx < boxes.Length; ++idx)
{
! DataRow box = ds.Tables[0].Rows[idx];
boxes[idx] = new Mailbox(this, box["Name"] as string, box["FullName"] as string, uint.Parse(box["NextUniqueId"] as string), uint.Parse(box["UniqueIdValidity"] as string), user);
}
--- 55,64 ----
ds.ReadXml(mFolderPath + "Mailboxes.xml");
! DataRow[] rows = ds.Tables[0].Select("UserIdentifier = '" + user.Username + "'");
! Mailbox[] boxes = new Mailbox[rows.Length];
! for(int idx = 0; idx < rows.Length; ++idx)
{
! DataRow box = rows[idx];
boxes[idx] = new Mailbox(this, box["Name"] as string, box["FullName"] as string, uint.Parse(box["NextUniqueId"] as string), uint.Parse(box["UniqueIdValidity"] as string), user);
}
***************
*** 63,71 ****
return boxes;
}
!
public Mailbox[] GetMailboxes(Mailbox parent)
{
return null;
}
#endregion
--- 66,96 ----
return boxes;
}
!
public Mailbox[] GetMailboxes(Mailbox parent)
{
return null;
}
+ #endregion
+
+ #region Mailbox modifieres
+ public bool InsertMailbox(Mailbox mbx)
+ {
+ DataSet ds = new DataSet();
+ ds.ReadXml(mFolderPath + "Mailboxes.xml");
+
+ DataRow newMbx = ds.Tables[0].NewRow();
+
+ newMbx["Name"] = mbx.Name;
+ newMbx["FullName"] = mbx.Name;
+ newMbx["NextUniqueId"] = mbx.NextUniqueId;
+ newMbx["UniqueIdValidity"] = mbx.UniqueIdValidity;
+
+ ds.Tables[0].Rows.Add(newMbx);
+ ds.WriteXml(mFolderPath + "Mailboxes.xml");
+
+ return true;
+ }
+ #endregion
+
#endregion
|