diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/ExchangeServerProxy.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/ExchangeServerProxy.cs
index 61f01a5c..9ffbd13b 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/ExchangeServerProxy.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/ExchangeServerProxy.cs
@@ -44,7 +44,8 @@ using WebsitePanel.Providers.ResultObjects;
//
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
//
-namespace WebsitePanel.EnterpriseServer {
+namespace WebsitePanel.EnterpriseServer
+{
using System.Xml.Serialization;
using System.Web.Services;
using System.ComponentModel;
@@ -81,6 +82,22 @@ namespace WebsitePanel.EnterpriseServer {
private System.Threading.SendOrPostCallback SetOrganizationDefaultExchangeMailboxPlanOperationCompleted;
+ private System.Threading.SendOrPostCallback GetExchangeRetentionPolicyTagsOperationCompleted;
+
+ private System.Threading.SendOrPostCallback GetExchangeRetentionPolicyTagOperationCompleted;
+
+ private System.Threading.SendOrPostCallback AddExchangeRetentionPolicyTagOperationCompleted;
+
+ private System.Threading.SendOrPostCallback UpdateExchangeRetentionPolicyTagOperationCompleted;
+
+ private System.Threading.SendOrPostCallback DeleteExchangeRetentionPolicyTagOperationCompleted;
+
+ private System.Threading.SendOrPostCallback GetExchangeMailboxPlanRetentionPolicyTagsOperationCompleted;
+
+ private System.Threading.SendOrPostCallback AddExchangeMailboxPlanRetentionPolicyTagOperationCompleted;
+
+ private System.Threading.SendOrPostCallback DeleteExchangeMailboxPlanRetentionPolicyTagOperationCompleted;
+
private System.Threading.SendOrPostCallback CreatePublicFolderOperationCompleted;
private System.Threading.SendOrPostCallback DeletePublicFoldersOperationCompleted;
@@ -281,6 +298,30 @@ namespace WebsitePanel.EnterpriseServer {
///
public event SetOrganizationDefaultExchangeMailboxPlanCompletedEventHandler SetOrganizationDefaultExchangeMailboxPlanCompleted;
+ ///
+ public event GetExchangeRetentionPolicyTagsCompletedEventHandler GetExchangeRetentionPolicyTagsCompleted;
+
+ ///
+ public event GetExchangeRetentionPolicyTagCompletedEventHandler GetExchangeRetentionPolicyTagCompleted;
+
+ ///
+ public event AddExchangeRetentionPolicyTagCompletedEventHandler AddExchangeRetentionPolicyTagCompleted;
+
+ ///
+ public event UpdateExchangeRetentionPolicyTagCompletedEventHandler UpdateExchangeRetentionPolicyTagCompleted;
+
+ ///
+ public event DeleteExchangeRetentionPolicyTagCompletedEventHandler DeleteExchangeRetentionPolicyTagCompleted;
+
+ ///
+ public event GetExchangeMailboxPlanRetentionPolicyTagsCompletedEventHandler GetExchangeMailboxPlanRetentionPolicyTagsCompleted;
+
+ ///
+ public event AddExchangeMailboxPlanRetentionPolicyTagCompletedEventHandler AddExchangeMailboxPlanRetentionPolicyTagCompleted;
+
+ ///
+ public event DeleteExchangeMailboxPlanRetentionPolicyTagCompletedEventHandler DeleteExchangeMailboxPlanRetentionPolicyTagCompleted;
+
///
public event CreatePublicFolderCompletedEventHandler CreatePublicFolderCompleted;
@@ -922,6 +963,355 @@ namespace WebsitePanel.EnterpriseServer {
}
}
+ ///
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetExchangeRetentionPolicyTags", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+ public ExchangeRetentionPolicyTag[] GetExchangeRetentionPolicyTags(int itemId) {
+ object[] results = this.Invoke("GetExchangeRetentionPolicyTags", new object[] {
+ itemId});
+ return ((ExchangeRetentionPolicyTag[])(results[0]));
+ }
+
+ ///
+ public System.IAsyncResult BeginGetExchangeRetentionPolicyTags(int itemId, System.AsyncCallback callback, object asyncState) {
+ return this.BeginInvoke("GetExchangeRetentionPolicyTags", new object[] {
+ itemId}, callback, asyncState);
+ }
+
+ ///
+ public ExchangeRetentionPolicyTag[] EndGetExchangeRetentionPolicyTags(System.IAsyncResult asyncResult) {
+ object[] results = this.EndInvoke(asyncResult);
+ return ((ExchangeRetentionPolicyTag[])(results[0]));
+ }
+
+ ///
+ public void GetExchangeRetentionPolicyTagsAsync(int itemId) {
+ this.GetExchangeRetentionPolicyTagsAsync(itemId, null);
+ }
+
+ ///
+ public void GetExchangeRetentionPolicyTagsAsync(int itemId, object userState) {
+ if ((this.GetExchangeRetentionPolicyTagsOperationCompleted == null)) {
+ this.GetExchangeRetentionPolicyTagsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetExchangeRetentionPolicyTagsOperationCompleted);
+ }
+ this.InvokeAsync("GetExchangeRetentionPolicyTags", new object[] {
+ itemId}, this.GetExchangeRetentionPolicyTagsOperationCompleted, userState);
+ }
+
+ private void OnGetExchangeRetentionPolicyTagsOperationCompleted(object arg) {
+ if ((this.GetExchangeRetentionPolicyTagsCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.GetExchangeRetentionPolicyTagsCompleted(this, new GetExchangeRetentionPolicyTagsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ ///
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetExchangeRetentionPolicyTag", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+ public ExchangeRetentionPolicyTag GetExchangeRetentionPolicyTag(int itemId, int tagId) {
+ object[] results = this.Invoke("GetExchangeRetentionPolicyTag", new object[] {
+ itemId,
+ tagId});
+ return ((ExchangeRetentionPolicyTag)(results[0]));
+ }
+
+ ///
+ public System.IAsyncResult BeginGetExchangeRetentionPolicyTag(int itemId, int tagId, System.AsyncCallback callback, object asyncState) {
+ return this.BeginInvoke("GetExchangeRetentionPolicyTag", new object[] {
+ itemId,
+ tagId}, callback, asyncState);
+ }
+
+ ///
+ public ExchangeRetentionPolicyTag EndGetExchangeRetentionPolicyTag(System.IAsyncResult asyncResult) {
+ object[] results = this.EndInvoke(asyncResult);
+ return ((ExchangeRetentionPolicyTag)(results[0]));
+ }
+
+ ///
+ public void GetExchangeRetentionPolicyTagAsync(int itemId, int tagId) {
+ this.GetExchangeRetentionPolicyTagAsync(itemId, tagId, null);
+ }
+
+ ///
+ public void GetExchangeRetentionPolicyTagAsync(int itemId, int tagId, object userState) {
+ if ((this.GetExchangeRetentionPolicyTagOperationCompleted == null)) {
+ this.GetExchangeRetentionPolicyTagOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetExchangeRetentionPolicyTagOperationCompleted);
+ }
+ this.InvokeAsync("GetExchangeRetentionPolicyTag", new object[] {
+ itemId,
+ tagId}, this.GetExchangeRetentionPolicyTagOperationCompleted, userState);
+ }
+
+ private void OnGetExchangeRetentionPolicyTagOperationCompleted(object arg) {
+ if ((this.GetExchangeRetentionPolicyTagCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.GetExchangeRetentionPolicyTagCompleted(this, new GetExchangeRetentionPolicyTagCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ ///
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/AddExchangeRetentionPolicyTag", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+ public int AddExchangeRetentionPolicyTag(int itemId, ExchangeRetentionPolicyTag tag) {
+ object[] results = this.Invoke("AddExchangeRetentionPolicyTag", new object[] {
+ itemId,
+ tag});
+ return ((int)(results[0]));
+ }
+
+ ///
+ public System.IAsyncResult BeginAddExchangeRetentionPolicyTag(int itemId, ExchangeRetentionPolicyTag tag, System.AsyncCallback callback, object asyncState) {
+ return this.BeginInvoke("AddExchangeRetentionPolicyTag", new object[] {
+ itemId,
+ tag}, callback, asyncState);
+ }
+
+ ///
+ public int EndAddExchangeRetentionPolicyTag(System.IAsyncResult asyncResult) {
+ object[] results = this.EndInvoke(asyncResult);
+ return ((int)(results[0]));
+ }
+
+ ///
+ public void AddExchangeRetentionPolicyTagAsync(int itemId, ExchangeRetentionPolicyTag tag) {
+ this.AddExchangeRetentionPolicyTagAsync(itemId, tag, null);
+ }
+
+ ///
+ public void AddExchangeRetentionPolicyTagAsync(int itemId, ExchangeRetentionPolicyTag tag, object userState) {
+ if ((this.AddExchangeRetentionPolicyTagOperationCompleted == null)) {
+ this.AddExchangeRetentionPolicyTagOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddExchangeRetentionPolicyTagOperationCompleted);
+ }
+ this.InvokeAsync("AddExchangeRetentionPolicyTag", new object[] {
+ itemId,
+ tag}, this.AddExchangeRetentionPolicyTagOperationCompleted, userState);
+ }
+
+ private void OnAddExchangeRetentionPolicyTagOperationCompleted(object arg) {
+ if ((this.AddExchangeRetentionPolicyTagCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.AddExchangeRetentionPolicyTagCompleted(this, new AddExchangeRetentionPolicyTagCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ ///
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/UpdateExchangeRetentionPolicyTag", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+ public int UpdateExchangeRetentionPolicyTag(int itemId, ExchangeRetentionPolicyTag tag) {
+ object[] results = this.Invoke("UpdateExchangeRetentionPolicyTag", new object[] {
+ itemId,
+ tag});
+ return ((int)(results[0]));
+ }
+
+ ///
+ public System.IAsyncResult BeginUpdateExchangeRetentionPolicyTag(int itemId, ExchangeRetentionPolicyTag tag, System.AsyncCallback callback, object asyncState) {
+ return this.BeginInvoke("UpdateExchangeRetentionPolicyTag", new object[] {
+ itemId,
+ tag}, callback, asyncState);
+ }
+
+ ///
+ public int EndUpdateExchangeRetentionPolicyTag(System.IAsyncResult asyncResult) {
+ object[] results = this.EndInvoke(asyncResult);
+ return ((int)(results[0]));
+ }
+
+ ///
+ public void UpdateExchangeRetentionPolicyTagAsync(int itemId, ExchangeRetentionPolicyTag tag) {
+ this.UpdateExchangeRetentionPolicyTagAsync(itemId, tag, null);
+ }
+
+ ///
+ public void UpdateExchangeRetentionPolicyTagAsync(int itemId, ExchangeRetentionPolicyTag tag, object userState) {
+ if ((this.UpdateExchangeRetentionPolicyTagOperationCompleted == null)) {
+ this.UpdateExchangeRetentionPolicyTagOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateExchangeRetentionPolicyTagOperationCompleted);
+ }
+ this.InvokeAsync("UpdateExchangeRetentionPolicyTag", new object[] {
+ itemId,
+ tag}, this.UpdateExchangeRetentionPolicyTagOperationCompleted, userState);
+ }
+
+ private void OnUpdateExchangeRetentionPolicyTagOperationCompleted(object arg) {
+ if ((this.UpdateExchangeRetentionPolicyTagCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.UpdateExchangeRetentionPolicyTagCompleted(this, new UpdateExchangeRetentionPolicyTagCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ ///
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/DeleteExchangeRetentionPolicyTag", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+ public int DeleteExchangeRetentionPolicyTag(int itemId, int tagId) {
+ object[] results = this.Invoke("DeleteExchangeRetentionPolicyTag", new object[] {
+ itemId,
+ tagId});
+ return ((int)(results[0]));
+ }
+
+ ///
+ public System.IAsyncResult BeginDeleteExchangeRetentionPolicyTag(int itemId, int tagId, System.AsyncCallback callback, object asyncState) {
+ return this.BeginInvoke("DeleteExchangeRetentionPolicyTag", new object[] {
+ itemId,
+ tagId}, callback, asyncState);
+ }
+
+ ///
+ public int EndDeleteExchangeRetentionPolicyTag(System.IAsyncResult asyncResult) {
+ object[] results = this.EndInvoke(asyncResult);
+ return ((int)(results[0]));
+ }
+
+ ///
+ public void DeleteExchangeRetentionPolicyTagAsync(int itemId, int tagId) {
+ this.DeleteExchangeRetentionPolicyTagAsync(itemId, tagId, null);
+ }
+
+ ///
+ public void DeleteExchangeRetentionPolicyTagAsync(int itemId, int tagId, object userState) {
+ if ((this.DeleteExchangeRetentionPolicyTagOperationCompleted == null)) {
+ this.DeleteExchangeRetentionPolicyTagOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteExchangeRetentionPolicyTagOperationCompleted);
+ }
+ this.InvokeAsync("DeleteExchangeRetentionPolicyTag", new object[] {
+ itemId,
+ tagId}, this.DeleteExchangeRetentionPolicyTagOperationCompleted, userState);
+ }
+
+ private void OnDeleteExchangeRetentionPolicyTagOperationCompleted(object arg) {
+ if ((this.DeleteExchangeRetentionPolicyTagCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.DeleteExchangeRetentionPolicyTagCompleted(this, new DeleteExchangeRetentionPolicyTagCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ ///
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetExchangeMailboxPlanRetentionPolic" +
+ "yTags", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+ public ExchangeMailboxPlanRetentionPolicyTag[] GetExchangeMailboxPlanRetentionPolicyTags(int policyId) {
+ object[] results = this.Invoke("GetExchangeMailboxPlanRetentionPolicyTags", new object[] {
+ policyId});
+ return ((ExchangeMailboxPlanRetentionPolicyTag[])(results[0]));
+ }
+
+ ///
+ public System.IAsyncResult BeginGetExchangeMailboxPlanRetentionPolicyTags(int policyId, System.AsyncCallback callback, object asyncState) {
+ return this.BeginInvoke("GetExchangeMailboxPlanRetentionPolicyTags", new object[] {
+ policyId}, callback, asyncState);
+ }
+
+ ///
+ public ExchangeMailboxPlanRetentionPolicyTag[] EndGetExchangeMailboxPlanRetentionPolicyTags(System.IAsyncResult asyncResult) {
+ object[] results = this.EndInvoke(asyncResult);
+ return ((ExchangeMailboxPlanRetentionPolicyTag[])(results[0]));
+ }
+
+ ///
+ public void GetExchangeMailboxPlanRetentionPolicyTagsAsync(int policyId) {
+ this.GetExchangeMailboxPlanRetentionPolicyTagsAsync(policyId, null);
+ }
+
+ ///
+ public void GetExchangeMailboxPlanRetentionPolicyTagsAsync(int policyId, object userState) {
+ if ((this.GetExchangeMailboxPlanRetentionPolicyTagsOperationCompleted == null)) {
+ this.GetExchangeMailboxPlanRetentionPolicyTagsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetExchangeMailboxPlanRetentionPolicyTagsOperationCompleted);
+ }
+ this.InvokeAsync("GetExchangeMailboxPlanRetentionPolicyTags", new object[] {
+ policyId}, this.GetExchangeMailboxPlanRetentionPolicyTagsOperationCompleted, userState);
+ }
+
+ private void OnGetExchangeMailboxPlanRetentionPolicyTagsOperationCompleted(object arg) {
+ if ((this.GetExchangeMailboxPlanRetentionPolicyTagsCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.GetExchangeMailboxPlanRetentionPolicyTagsCompleted(this, new GetExchangeMailboxPlanRetentionPolicyTagsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ ///
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/AddExchangeMailboxPlanRetentionPolic" +
+ "yTag", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+ public int AddExchangeMailboxPlanRetentionPolicyTag(int itemId, ExchangeMailboxPlanRetentionPolicyTag planTag) {
+ object[] results = this.Invoke("AddExchangeMailboxPlanRetentionPolicyTag", new object[] {
+ itemId,
+ planTag});
+ return ((int)(results[0]));
+ }
+
+ ///
+ public System.IAsyncResult BeginAddExchangeMailboxPlanRetentionPolicyTag(int itemId, ExchangeMailboxPlanRetentionPolicyTag planTag, System.AsyncCallback callback, object asyncState) {
+ return this.BeginInvoke("AddExchangeMailboxPlanRetentionPolicyTag", new object[] {
+ itemId,
+ planTag}, callback, asyncState);
+ }
+
+ ///
+ public int EndAddExchangeMailboxPlanRetentionPolicyTag(System.IAsyncResult asyncResult) {
+ object[] results = this.EndInvoke(asyncResult);
+ return ((int)(results[0]));
+ }
+
+ ///
+ public void AddExchangeMailboxPlanRetentionPolicyTagAsync(int itemId, ExchangeMailboxPlanRetentionPolicyTag planTag) {
+ this.AddExchangeMailboxPlanRetentionPolicyTagAsync(itemId, planTag, null);
+ }
+
+ ///
+ public void AddExchangeMailboxPlanRetentionPolicyTagAsync(int itemId, ExchangeMailboxPlanRetentionPolicyTag planTag, object userState) {
+ if ((this.AddExchangeMailboxPlanRetentionPolicyTagOperationCompleted == null)) {
+ this.AddExchangeMailboxPlanRetentionPolicyTagOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddExchangeMailboxPlanRetentionPolicyTagOperationCompleted);
+ }
+ this.InvokeAsync("AddExchangeMailboxPlanRetentionPolicyTag", new object[] {
+ itemId,
+ planTag}, this.AddExchangeMailboxPlanRetentionPolicyTagOperationCompleted, userState);
+ }
+
+ private void OnAddExchangeMailboxPlanRetentionPolicyTagOperationCompleted(object arg) {
+ if ((this.AddExchangeMailboxPlanRetentionPolicyTagCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.AddExchangeMailboxPlanRetentionPolicyTagCompleted(this, new AddExchangeMailboxPlanRetentionPolicyTagCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ ///
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/DeleteExchangeMailboxPlanRetentionPo" +
+ "licyTag", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+ public int DeleteExchangeMailboxPlanRetentionPolicyTag(int itemId, int planTagId) {
+ object[] results = this.Invoke("DeleteExchangeMailboxPlanRetentionPolicyTag", new object[] {
+ itemId,
+ planTagId});
+ return ((int)(results[0]));
+ }
+
+ ///
+ public System.IAsyncResult BeginDeleteExchangeMailboxPlanRetentionPolicyTag(int itemId, int planTagId, System.AsyncCallback callback, object asyncState) {
+ return this.BeginInvoke("DeleteExchangeMailboxPlanRetentionPolicyTag", new object[] {
+ itemId,
+ planTagId}, callback, asyncState);
+ }
+
+ ///
+ public int EndDeleteExchangeMailboxPlanRetentionPolicyTag(System.IAsyncResult asyncResult) {
+ object[] results = this.EndInvoke(asyncResult);
+ return ((int)(results[0]));
+ }
+
+ ///
+ public void DeleteExchangeMailboxPlanRetentionPolicyTagAsync(int itemId, int planTagId) {
+ this.DeleteExchangeMailboxPlanRetentionPolicyTagAsync(itemId, planTagId, null);
+ }
+
+ ///
+ public void DeleteExchangeMailboxPlanRetentionPolicyTagAsync(int itemId, int planTagId, object userState) {
+ if ((this.DeleteExchangeMailboxPlanRetentionPolicyTagOperationCompleted == null)) {
+ this.DeleteExchangeMailboxPlanRetentionPolicyTagOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteExchangeMailboxPlanRetentionPolicyTagOperationCompleted);
+ }
+ this.InvokeAsync("DeleteExchangeMailboxPlanRetentionPolicyTag", new object[] {
+ itemId,
+ planTagId}, this.DeleteExchangeMailboxPlanRetentionPolicyTagOperationCompleted, userState);
+ }
+
+ private void OnDeleteExchangeMailboxPlanRetentionPolicyTagOperationCompleted(object arg) {
+ if ((this.DeleteExchangeMailboxPlanRetentionPolicyTagCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.DeleteExchangeMailboxPlanRetentionPolicyTagCompleted(this, new DeleteExchangeMailboxPlanRetentionPolicyTagCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
///
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/CreatePublicFolder", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public int CreatePublicFolder(int itemId, string parentFolder, string folderName, bool mailEnabled, string accountName, string domain) {
@@ -5347,6 +5737,214 @@ namespace WebsitePanel.EnterpriseServer {
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void SetOrganizationDefaultExchangeMailboxPlanCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ public delegate void GetExchangeRetentionPolicyTagsCompletedEventHandler(object sender, GetExchangeRetentionPolicyTagsCompletedEventArgs e);
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class GetExchangeRetentionPolicyTagsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal GetExchangeRetentionPolicyTagsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ ///
+ public ExchangeRetentionPolicyTag[] Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((ExchangeRetentionPolicyTag[])(this.results[0]));
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ public delegate void GetExchangeRetentionPolicyTagCompletedEventHandler(object sender, GetExchangeRetentionPolicyTagCompletedEventArgs e);
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class GetExchangeRetentionPolicyTagCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal GetExchangeRetentionPolicyTagCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ ///
+ public ExchangeRetentionPolicyTag Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((ExchangeRetentionPolicyTag)(this.results[0]));
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ public delegate void AddExchangeRetentionPolicyTagCompletedEventHandler(object sender, AddExchangeRetentionPolicyTagCompletedEventArgs e);
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class AddExchangeRetentionPolicyTagCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal AddExchangeRetentionPolicyTagCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ ///
+ public int Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((int)(this.results[0]));
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ public delegate void UpdateExchangeRetentionPolicyTagCompletedEventHandler(object sender, UpdateExchangeRetentionPolicyTagCompletedEventArgs e);
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class UpdateExchangeRetentionPolicyTagCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal UpdateExchangeRetentionPolicyTagCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ ///
+ public int Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((int)(this.results[0]));
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ public delegate void DeleteExchangeRetentionPolicyTagCompletedEventHandler(object sender, DeleteExchangeRetentionPolicyTagCompletedEventArgs e);
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class DeleteExchangeRetentionPolicyTagCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal DeleteExchangeRetentionPolicyTagCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ ///
+ public int Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((int)(this.results[0]));
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ public delegate void GetExchangeMailboxPlanRetentionPolicyTagsCompletedEventHandler(object sender, GetExchangeMailboxPlanRetentionPolicyTagsCompletedEventArgs e);
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class GetExchangeMailboxPlanRetentionPolicyTagsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal GetExchangeMailboxPlanRetentionPolicyTagsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ ///
+ public ExchangeMailboxPlanRetentionPolicyTag[] Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((ExchangeMailboxPlanRetentionPolicyTag[])(this.results[0]));
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ public delegate void AddExchangeMailboxPlanRetentionPolicyTagCompletedEventHandler(object sender, AddExchangeMailboxPlanRetentionPolicyTagCompletedEventArgs e);
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class AddExchangeMailboxPlanRetentionPolicyTagCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal AddExchangeMailboxPlanRetentionPolicyTagCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ ///
+ public int Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((int)(this.results[0]));
+ }
+ }
+ }
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ public delegate void DeleteExchangeMailboxPlanRetentionPolicyTagCompletedEventHandler(object sender, DeleteExchangeMailboxPlanRetentionPolicyTagCompletedEventArgs e);
+
+ ///
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class DeleteExchangeMailboxPlanRetentionPolicyTagCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal DeleteExchangeMailboxPlanRetentionPolicyTagCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ ///
+ public int Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((int)(this.results[0]));
+ }
+ }
+ }
+
///
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
public delegate void CreatePublicFolderCompletedEventHandler(object sender, CreatePublicFolderCompletedEventArgs e);
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs
index f2e3b43e..c5c93191 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs
@@ -2830,7 +2830,8 @@ namespace WebsitePanel.EnterpriseServer
public static void UpdateExchangeMailboxPlan(int mailboxPlanID, string mailboxPlan, bool enableActiveSync, bool enableIMAP, bool enableMAPI, bool enableOWA, bool enablePOP,
bool isDefault, int issueWarningPct, int keepDeletedItemsDays, int mailboxSizeMB, int maxReceiveMessageSizeKB, int maxRecipients,
int maxSendMessageSizeKB, int prohibitSendPct, int prohibitSendReceivePct, bool hideFromAddressBook, int mailboxPlanType,
- bool enabledLitigationHold, long recoverabelItemsSpace, long recoverabelItemsWarning, string litigationHoldUrl, string litigationHoldMsg)
+ bool enabledLitigationHold, long recoverabelItemsSpace, long recoverabelItemsWarning, string litigationHoldUrl, string litigationHoldMsg,
+ bool Archiving, bool EnableArchiving)
{
SqlHelper.ExecuteNonQuery(
ConnectionString,
@@ -2858,7 +2859,9 @@ namespace WebsitePanel.EnterpriseServer
new SqlParameter("@RecoverableItemsWarningPct", recoverabelItemsWarning),
new SqlParameter("@RecoverableItemsSpace", recoverabelItemsSpace),
new SqlParameter("@LitigationHoldUrl", litigationHoldUrl),
- new SqlParameter("@LitigationHoldMsg", litigationHoldMsg)
+ new SqlParameter("@LitigationHoldMsg", litigationHoldMsg),
+ new SqlParameter("@Archiving", Archiving),
+ new SqlParameter("@EnableArchiving", EnableArchiving)
);
}
@@ -2932,6 +2935,112 @@ namespace WebsitePanel.EnterpriseServer
);
}
+ #endregion
+
+ #region Exchange Retention Policy Tags
+ public static int AddExchangeRetentionPolicyTag(int ItemID, string TagName, int TagType, int AgeLimitForRetention, int RetentionAction)
+ {
+ SqlParameter outParam = new SqlParameter("@TagID", SqlDbType.Int);
+ outParam.Direction = ParameterDirection.Output;
+
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "AddExchangeRetentionPolicyTag",
+ outParam,
+ new SqlParameter("@ItemID", ItemID),
+ new SqlParameter("@TagName", TagName),
+ new SqlParameter("@TagType", TagType),
+ new SqlParameter("@AgeLimitForRetention", AgeLimitForRetention),
+ new SqlParameter("@RetentionAction", RetentionAction)
+ );
+
+ return Convert.ToInt32(outParam.Value);
+ }
+
+ public static void UpdateExchangeRetentionPolicyTag(int TagID, int ItemID, string TagName, int TagType, int AgeLimitForRetention, int RetentionAction)
+ {
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "UpdateExchangeRetentionPolicyTag",
+ new SqlParameter("@TagID", TagID),
+ new SqlParameter("@ItemID", ItemID),
+ new SqlParameter("@TagName", TagName),
+ new SqlParameter("@TagType", TagType),
+ new SqlParameter("@AgeLimitForRetention", AgeLimitForRetention),
+ new SqlParameter("@RetentionAction", RetentionAction)
+ );
+ }
+
+ public static void DeleteExchangeRetentionPolicyTag(int TagID)
+ {
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "DeleteExchangeRetentionPolicyTag",
+ new SqlParameter("@TagID", TagID)
+ );
+ }
+
+ public static IDataReader GetExchangeRetentionPolicyTag(int TagID)
+ {
+ return SqlHelper.ExecuteReader(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "GetExchangeRetentionPolicyTag",
+ new SqlParameter("@TagID", TagID)
+ );
+ }
+
+ public static IDataReader GetExchangeRetentionPolicyTags(int itemId)
+ {
+ return SqlHelper.ExecuteReader(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "GetExchangeRetentionPolicyTags",
+ new SqlParameter("@ItemID", itemId)
+ );
+ }
+
+ public static int AddExchangeMailboxPlanRetentionPolicyTag(int TagID, int MailboxPlanId)
+ {
+ SqlParameter outParam = new SqlParameter("@PlanTagID", SqlDbType.Int);
+ outParam.Direction = ParameterDirection.Output;
+
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "AddExchangeMailboxPlanRetentionPolicyTag",
+ outParam,
+ new SqlParameter("@TagID", TagID),
+ new SqlParameter("@MailboxPlanId", MailboxPlanId)
+ );
+
+ return Convert.ToInt32(outParam.Value);
+ }
+
+ public static void DeleteExchangeMailboxPlanRetentionPolicyTag(int PlanTagID)
+ {
+ SqlHelper.ExecuteNonQuery(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "DeleteExchangeMailboxPlanRetentionPolicyTag",
+ new SqlParameter("@PlanTagID", PlanTagID)
+ );
+ }
+
+ public static IDataReader GetExchangeMailboxPlanRetentionPolicyTags(int MailboxPlanId)
+ {
+ return SqlHelper.ExecuteReader(
+ ConnectionString,
+ CommandType.StoredProcedure,
+ "GetExchangeMailboxPlanRetentionPolicyTags",
+ new SqlParameter("@MailboxPlanId", MailboxPlanId)
+ );
+ }
+
+
#endregion
#region Exchange Disclaimers
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs
index 0ef790b1..83141117 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/ExchangeServer/ExchangeServerController.cs
@@ -2951,7 +2951,8 @@ namespace WebsitePanel.EnterpriseServer
mailboxPlan.IsDefault, mailboxPlan.IssueWarningPct, mailboxPlan.KeepDeletedItemsDays, mailboxPlan.MailboxSizeMB, mailboxPlan.MaxReceiveMessageSizeKB, mailboxPlan.MaxRecipients,
mailboxPlan.MaxSendMessageSizeKB, mailboxPlan.ProhibitSendPct, mailboxPlan.ProhibitSendReceivePct, mailboxPlan.HideFromAddressBook, mailboxPlan.MailboxPlanType,
mailboxPlan.AllowLitigationHold, mailboxPlan.RecoverableItemsSpace, mailboxPlan.RecoverableItemsWarningPct,
- mailboxPlan.LitigationHoldUrl, mailboxPlan.LitigationHoldMsg);
+ mailboxPlan.LitigationHoldUrl, mailboxPlan.LitigationHoldMsg,
+ mailboxPlan.Archiving, mailboxPlan.EnableArchiving);
}
catch (Exception ex)
{
@@ -3012,6 +3013,262 @@ namespace WebsitePanel.EnterpriseServer
#endregion
+ #region Exchange Retention Policy Tags
+
+ public static List GetExchangeRetentionPolicyTags(int itemId)
+ {
+ // place log record
+ TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_RETENTIONPOLICYTAGS", itemId);
+
+ try
+ {
+ List retentionPolicyTags = new List();
+
+ UserInfo user = ObjectUtils.FillObjectFromDataReader(DataProvider.GetUserByExchangeOrganizationIdInternally(itemId));
+
+ if (user.Role == UserRole.User)
+ ExchangeServerController.GetExchangeRetentionPolicyTagsByUser(itemId, user, ref retentionPolicyTags);
+ else
+ ExchangeServerController.GetExchangeRetentionPolicyTagsByUser(0, user, ref retentionPolicyTags);
+
+ return retentionPolicyTags;
+ }
+ catch (Exception ex)
+ {
+ throw TaskManager.WriteError(ex);
+ }
+ finally
+ {
+ TaskManager.CompleteTask();
+ }
+ }
+
+ private static void GetExchangeRetentionPolicyTagsByUser(int itemId, UserInfo user, ref List retentionPolicyTags)
+ {
+ if ((user != null))
+ {
+ List orgs = null;
+
+ if (user.UserId != 1)
+ {
+ List Packages = PackageController.GetPackages(user.UserId);
+
+ if ((Packages != null) & (Packages.Count > 0))
+ {
+ orgs = GetExchangeOrganizationsInternal(Packages[0].PackageId, false);
+ }
+ }
+ else
+ {
+ orgs = GetExchangeOrganizationsInternal(1, false);
+ }
+
+ int OrgId = -1;
+ if (itemId > 0) OrgId = itemId;
+ else if ((orgs != null) & (orgs.Count > 0)) OrgId = orgs[0].Id;
+
+
+ if (OrgId != -1)
+ {
+ List RetentionPolicy = ObjectUtils.CreateListFromDataReader(DataProvider.GetExchangeRetentionPolicyTags(OrgId));
+
+ foreach (ExchangeRetentionPolicyTag p in RetentionPolicy)
+ {
+ retentionPolicyTags.Add(p);
+ }
+ }
+
+ UserInfo owner = UserController.GetUserInternally(user.OwnerId);
+
+ GetExchangeRetentionPolicyTagsByUser(0, owner, ref retentionPolicyTags);
+ }
+ }
+
+ public static ExchangeRetentionPolicyTag GetExchangeRetentionPolicyTag(int itemID, int tagId)
+ {
+
+ // place log record
+ TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_RETENTIONPOLICYTAG", tagId);
+
+ try
+ {
+ return ObjectUtils.FillObjectFromDataReader(
+ DataProvider.GetExchangeRetentionPolicyTag(tagId));
+ }
+ catch (Exception ex)
+ {
+ throw TaskManager.WriteError(ex);
+ }
+ finally
+ {
+ TaskManager.CompleteTask();
+ }
+ }
+
+ public static int AddExchangeRetentionPolicyTag(int itemID, ExchangeRetentionPolicyTag tag)
+ {
+ // place log record
+ TaskManager.StartTask("EXCHANGE", "ADD_EXCHANGE_RETENTIONPOLICYTAG", itemID);
+
+ try
+ {
+ Organization org = GetOrganization(itemID);
+ if (org == null)
+ return -1;
+
+ // load package context
+ PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
+
+ if (org.PackageId > 1)
+ {
+ // quotas
+ }
+
+ return DataProvider.AddExchangeRetentionPolicyTag(itemID, tag.TagName, tag.TagType, tag.AgeLimitForRetention, tag.RetentionAction );
+ }
+ catch (Exception ex)
+ {
+ throw TaskManager.WriteError(ex);
+ }
+ finally
+ {
+ TaskManager.CompleteTask();
+ }
+
+ }
+
+ public static int UpdateExchangeRetentionPolicyTag(int itemID, ExchangeRetentionPolicyTag tag)
+ {
+ // place log record
+ TaskManager.StartTask("EXCHANGE", "UPDATE_EXCHANGE_RETENTIONPOLICYTAG", itemID);
+
+ try
+ {
+ Organization org = GetOrganization(itemID);
+ if (org == null)
+ return -1;
+
+ // load package context
+ PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
+
+ if (org.PackageId > 1)
+ {
+ // quotas
+ }
+
+ DataProvider.UpdateExchangeRetentionPolicyTag(tag.TagID, tag.ItemID, tag.TagName, tag.TagType, tag.AgeLimitForRetention, tag.RetentionAction);
+ }
+ catch (Exception ex)
+ {
+ throw TaskManager.WriteError(ex);
+ }
+ finally
+ {
+ TaskManager.CompleteTask();
+ }
+
+
+ return 0;
+ }
+
+ public static int DeleteExchangeRetentionPolicyTag(int itemID, int tagId)
+ {
+ TaskManager.StartTask("EXCHANGE", "DELETE_EXCHANGE_RETENTIONPOLICYTAG", itemID);
+
+ try
+ {
+ DataProvider.DeleteExchangeRetentionPolicyTag(tagId);
+
+ return 0;
+ }
+ catch (Exception ex)
+ {
+ throw TaskManager.WriteError(ex);
+ }
+ finally
+ {
+ TaskManager.CompleteTask();
+ }
+
+ }
+
+
+ public static List GetExchangeMailboxPlanRetentionPolicyTags(int policyId)
+ {
+ // place log record
+ TaskManager.StartTask("EXCHANGE", "GET_EXCHANGE_RETENTIONPOLICYTAGS", policyId);
+
+ try
+ {
+ List tags =
+ ObjectUtils.CreateListFromDataReader(DataProvider.GetExchangeMailboxPlanRetentionPolicyTags(policyId));
+
+ return tags;
+ }
+ catch (Exception ex)
+ {
+ throw TaskManager.WriteError(ex);
+ }
+ finally
+ {
+ TaskManager.CompleteTask();
+ }
+ }
+
+ public static int AddExchangeMailboxPlanRetentionPolicyTag(int itemID, ExchangeMailboxPlanRetentionPolicyTag planTag)
+ {
+ // place log record
+ TaskManager.StartTask("EXCHANGE", "ADD_EXCHANGE_RETENTIONPOLICYTAG", itemID);
+
+ try
+ {
+ Organization org = GetOrganization(itemID);
+ if (org == null)
+ return -1;
+
+ // load package context
+ PackageContext cntx = PackageController.GetPackageContext(org.PackageId);
+
+ if (org.PackageId > 1)
+ {
+ // quotas
+ }
+
+ return DataProvider.AddExchangeMailboxPlanRetentionPolicyTag(planTag.TagID, planTag.MailboxPlanId);
+ }
+ catch (Exception ex)
+ {
+ throw TaskManager.WriteError(ex);
+ }
+ finally
+ {
+ TaskManager.CompleteTask();
+ }
+
+ }
+
+ public static int DeleteExchangeMailboxPlanRetentionPolicyTag(int itemID, int planTagId)
+ {
+ TaskManager.StartTask("EXCHANGE", "DELETE_EXCHANGE_RETENTIONPOLICYTAG", itemID);
+
+ try
+ {
+ DataProvider.DeleteExchangeMailboxPlanRetentionPolicyTag(planTagId);
+
+ return 0;
+ }
+ catch (Exception ex)
+ {
+ throw TaskManager.WriteError(ex);
+ }
+ finally
+ {
+ TaskManager.CompleteTask();
+ }
+
+ }
+
+ #endregion
#region Contacts
public static int CreateContact(int itemId, string displayName, string email)
diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esExchangeServer.asmx.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esExchangeServer.asmx.cs
index 8d86fd5b..129400c4 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esExchangeServer.asmx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esExchangeServer.asmx.cs
@@ -549,8 +549,7 @@ namespace WebsitePanel.EnterpriseServer
{
return ExchangeServerController.UpdateExchangeMailboxPlan(itemId, mailboxPlan);
}
-
-
+
[WebMethod]
public int DeleteExchangeMailboxPlan(int itemId, int mailboxPlanId)
{
@@ -565,6 +564,59 @@ namespace WebsitePanel.EnterpriseServer
#endregion
+ #region Exchange Retention Policy Tags
+
+ [WebMethod]
+ public List GetExchangeRetentionPolicyTags(int itemId)
+ {
+ return ExchangeServerController.GetExchangeRetentionPolicyTags(itemId);
+ }
+
+ [WebMethod]
+ public ExchangeRetentionPolicyTag GetExchangeRetentionPolicyTag(int itemId, int tagId)
+ {
+ return ExchangeServerController.GetExchangeRetentionPolicyTag(itemId, tagId);
+ }
+
+ [WebMethod]
+ public int AddExchangeRetentionPolicyTag(int itemId, ExchangeRetentionPolicyTag tag)
+ {
+ return ExchangeServerController.AddExchangeRetentionPolicyTag(itemId, tag);
+ }
+
+ [WebMethod]
+ public int UpdateExchangeRetentionPolicyTag(int itemId, ExchangeRetentionPolicyTag tag)
+ {
+ return ExchangeServerController.UpdateExchangeRetentionPolicyTag(itemId, tag);
+ }
+
+ [WebMethod]
+ public int DeleteExchangeRetentionPolicyTag(int itemId, int tagId)
+ {
+ return ExchangeServerController.DeleteExchangeRetentionPolicyTag(itemId, tagId);
+ }
+
+
+ [WebMethod]
+ public List GetExchangeMailboxPlanRetentionPolicyTags(int policyId)
+ {
+ return ExchangeServerController.GetExchangeMailboxPlanRetentionPolicyTags(policyId);
+ }
+
+ [WebMethod]
+ public int AddExchangeMailboxPlanRetentionPolicyTag(int itemId, ExchangeMailboxPlanRetentionPolicyTag planTag)
+ {
+ return ExchangeServerController.AddExchangeMailboxPlanRetentionPolicyTag(itemId, planTag);
+ }
+
+ [WebMethod]
+ public int DeleteExchangeMailboxPlanRetentionPolicyTag(int itemId, int planTagId)
+ {
+ return ExchangeServerController.DeleteExchangeMailboxPlanRetentionPolicyTag(itemId, planTagId);
+ }
+
+ #endregion
+
#region Public Folders
[WebMethod]
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeMailboxPlanRetentionPolicyTag.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeMailboxPlanRetentionPolicyTag.cs
new file mode 100644
index 00000000..2ed651d5
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeMailboxPlanRetentionPolicyTag.cs
@@ -0,0 +1,76 @@
+// Copyright (c) 2014, Outercurve Foundation.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// - Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// - Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// - Neither the name of the Outercurve Foundation nor the names of its
+// contributors may be used to endorse or promote products derived from this
+// software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+
+namespace WebsitePanel.Providers.HostedSolution
+{
+ [Serializable]
+ public class ExchangeMailboxPlanRetentionPolicyTag
+ {
+ int planTagID;
+ public int PlanTagID
+ {
+ get { return planTagID; }
+ set { planTagID = value; }
+ }
+
+ int tagID;
+ public int TagID
+ {
+ get { return tagID; }
+ set { tagID = value; }
+ }
+
+ int mailboxPlanId;
+ public int MailboxPlanId
+ {
+ get { return mailboxPlanId; }
+ set { mailboxPlanId = value; }
+ }
+
+ string mailboxPlan;
+ public string MailboxPlan
+ {
+ get { return mailboxPlan; }
+ set { mailboxPlan = value; }
+ }
+
+ string tagName;
+ public string TagName
+ {
+ get { return tagName; }
+ set { tagName = value; }
+ }
+
+
+ }
+}
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeRetentionPolicyTag.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeRetentionPolicyTag.cs
new file mode 100644
index 00000000..a9b6ba1c
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeRetentionPolicyTag.cs
@@ -0,0 +1,80 @@
+// Copyright (c) 2014, Outercurve Foundation.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// - Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// - Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// - Neither the name of the Outercurve Foundation nor the names of its
+// contributors may be used to endorse or promote products derived from this
+// software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WebsitePanel.Providers.HostedSolution
+{
+ public class ExchangeRetentionPolicyTag
+ {
+ int tagID;
+ public int TagID
+ {
+ get { return tagID; }
+ set { tagID = value; }
+ }
+
+ int itemID;
+ public int ItemID
+ {
+ get { return itemID; }
+ set { itemID = value; }
+ }
+
+ string tagName;
+ public string TagName
+ {
+ get { return tagName; }
+ set { tagName = value; }
+ }
+
+ int tagType;
+ public int TagType
+ {
+ get { return tagType; }
+ set { tagType = value; }
+ }
+
+ int ageLimitForRetention;
+ public int AgeLimitForRetention
+ {
+ get { return ageLimitForRetention; }
+ set { ageLimitForRetention = value;}
+ }
+
+ int retentionAction;
+ public int RetentionAction
+ {
+ get { return retentionAction; }
+ set { retentionAction = value; }
+ }
+
+ }
+}
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeRetentionPolicyTagAction.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeRetentionPolicyTagAction.cs
new file mode 100644
index 00000000..89e26d7e
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeRetentionPolicyTagAction.cs
@@ -0,0 +1,41 @@
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// - Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// - Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// - Neither the name of the Outercurve Foundation nor the names of its
+// contributors may be used to endorse or promote products derived from this
+// software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WebsitePanel.Providers.HostedSolution
+{
+ public enum ExchangeRetentionPolicyTagAction
+ {
+ MoveToDeletedItems,
+ MoveToFolder,
+ DeleteAndAllowRecovery,
+ PermanentlyDelete,
+ MarkAsPastRetentionLimit,
+ MoveToArchive
+ }
+}
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeRetentionPolicyTagType.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeRetentionPolicyTagType.cs
new file mode 100644
index 00000000..66c68cba
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/HostedSolution/ExchangeRetentionPolicyTagType.cs
@@ -0,0 +1,58 @@
+// Copyright (c) 2014, Outercurve Foundation.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// - Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// - Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// - Neither the name of the Outercurve Foundation nor the names of its
+// contributors may be used to endorse or promote products derived from this
+// software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WebsitePanel.Providers.HostedSolution
+{
+ public enum ExchangeRetentionPolicyTagType
+ {
+ Calendar,
+ Contacts,
+ DeletedItems,
+ Drafts,
+ Inbox,
+ JunkEmail,
+ Journal,
+ Notes,
+ Outbox,
+ SentItems,
+ Tasks,
+ All,
+ ManagedCustomFolder,
+ RssSubscriptions,
+ SyncIssues,
+ ConversationHistory,
+ Personal,
+ RecoverableItems,
+ NonIpmRoot,
+ LegacyArchiveJournals
+ }
+}
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj b/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj
index 3e0c109c..6a3141a3 100644
--- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebsitePanel.Providers.Base.csproj
@@ -93,10 +93,14 @@
+
+
+
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Modules.config b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Modules.config
index 379d1875..ecb4de84 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Modules.config
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Modules.config
@@ -514,6 +514,7 @@
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsExchangeRetentionPolicyTag.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsExchangeRetentionPolicyTag.ascx.resx
new file mode 100644
index 00000000..4b7a62be
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsExchangeRetentionPolicyTag.ascx.resx
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Retention policy
+
+
+ Select
+
+
+ No Retention policy tags have been added yet. To add a new mailbox plan click "Add New" button.
+
+
+ Select
+
+
+ Please enter correct retention policy tags
+
+
+ *
+
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeAddMailboxPlan.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeAddMailboxPlan.ascx.resx
index d3e7ed41..51a4e3a7 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeAddMailboxPlan.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeAddMailboxPlan.ascx.resx
@@ -217,6 +217,6 @@
Litigation Hold Url:
- Add Archiving Mailbox plan
+ Add Retention policy
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeRetentionPolicyTag.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeRetentionPolicyTag.ascx.resx
new file mode 100644
index 00000000..862adf53
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/App_LocalResources/ExchangeRetentionPolicyTag.ascx.resx
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Retention policy
+
+
+ Select
+
+
+ No Retention policy tags have been added yet. To add a new mailbox plan click "Add New" button.
+
+
+ Select
+
+
+ Please enter correct retention policy tags
+
+
+ *
+
+
+ Mailbox plans
+
+
+ Retention policy tags
+
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeAddMailboxPlan.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeAddMailboxPlan.ascx
index 0f201cb2..4747151b 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeAddMailboxPlan.ascx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeAddMailboxPlan.ascx
@@ -8,6 +8,8 @@
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/QuotaEditor.ascx" TagName="QuotaEditor" TagPrefix="uc1" %>
+<%@ Import Namespace="WebsitePanel.Portal" %>
+
@@ -226,6 +228,39 @@
+
+
+
+
+
+
+
+
+
+
+ <%# PortalAntiXSS.Encode((string)Eval("TagName"))%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+