Support Exchange 2013 Added

This commit is contained in:
robvde 2012-10-28 23:21:55 +04:00
parent 50f0d4f2c0
commit c5430fa31e
7 changed files with 5135 additions and 5104 deletions

View file

@ -6415,4 +6415,23 @@ exec sp_executesql @sql, N'@StartRow int, @MaximumRows int, @PackageID int, @Fil
RETURN RETURN
GO GO
-- Version 2.1 section
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Hosted Microsoft Exchange Server 2013')
BEGIN
INSERT [dbo].[Providers] ([ProviderId], [GroupId], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES(91, 12, N'Exchange2013', N'Hosted Microsoft Exchange Server 2013', N'WebsitePanel.Providers.HostedSolution.Exchange2013, WebsitePanel.Providers.HostedSolution.Exchange2013', N'Exchange', 1)
END
ELSE
BEGIN
UPDATE [dbo].[Providers] SET [DisableAutoDiscovery] = NULL WHERE [DisplayName] = 'Hosted Microsoft Exchange Server 2013'
END
GO

View file

@ -55,153 +55,153 @@ using Microsoft.Exchange.Data.Storage;
namespace WebsitePanel.Providers.HostedSolution namespace WebsitePanel.Providers.HostedSolution
{ {
public class Exchange2010 : Exchange2007 public class Exchange2010 : Exchange2007
{ {
#region Static constructor #region Static constructor
static Exchange2010() static Exchange2010()
{ {
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(ResolveExchangeAssembly); AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(ResolveExchangeAssembly);
ExchangeRegistryPath = "SOFTWARE\\Microsoft\\ExchangeServer\\v14\\Setup"; ExchangeRegistryPath = "SOFTWARE\\Microsoft\\ExchangeServer\\v14\\Setup";
} }
#endregion #endregion
#region Mailboxes #region Mailboxes
internal override void SetCalendarSettings(Runspace runspace, string id) internal override void SetCalendarSettings(Runspace runspace, string id)
{ {
ExchangeLog.LogStart("SetCalendarSettings"); ExchangeLog.LogStart("SetCalendarSettings");
Command cmd = new Command("Set-CalendarProcessing"); Command cmd = new Command("Set-CalendarProcessing");
cmd.Parameters.Add("Identity", id); cmd.Parameters.Add("Identity", id);
cmd.Parameters.Add("AutomateProcessing", CalendarProcessingFlags.AutoAccept); cmd.Parameters.Add("AutomateProcessing", CalendarProcessingFlags.AutoAccept);
ExecuteShellCommand(runspace, cmd); ExecuteShellCommand(runspace, cmd);
ExchangeLog.LogEnd("SetCalendarSettings"); ExchangeLog.LogEnd("SetCalendarSettings");
} }
#endregion #endregion
#region Distribution Lists #region Distribution Lists
internal override string GetGroupManager(PSObject group) internal override string GetGroupManager(PSObject group)
{ {
string ret = null; string ret = null;
MultiValuedProperty<ADObjectId> ids = MultiValuedProperty<ADObjectId> ids =
(MultiValuedProperty<ADObjectId>)GetPSObjectProperty(group, "ManagedBy"); (MultiValuedProperty<ADObjectId>)GetPSObjectProperty(group, "ManagedBy");
if ( ids.Count > 0 ) if (ids.Count > 0)
ret = ObjToString(ids[0]); ret = ObjToString(ids[0]);
return ret; return ret;
} }
internal override void RemoveDistributionGroup(Runspace runSpace, string id) internal override void RemoveDistributionGroup(Runspace runSpace, string id)
{ {
ExchangeLog.LogStart("RemoveDistributionGroup"); ExchangeLog.LogStart("RemoveDistributionGroup");
Command cmd = new Command("Remove-DistributionGroup"); Command cmd = new Command("Remove-DistributionGroup");
cmd.Parameters.Add("Identity", id); cmd.Parameters.Add("Identity", id);
cmd.Parameters.Add("Confirm", false); cmd.Parameters.Add("Confirm", false);
cmd.Parameters.Add("BypassSecurityGroupManagerCheck"); cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
ExecuteShellCommand(runSpace, cmd); ExecuteShellCommand(runSpace, cmd);
ExchangeLog.LogEnd("RemoveDistributionGroup"); ExchangeLog.LogEnd("RemoveDistributionGroup");
} }
internal override void SetDistributionGroup(Runspace runSpace, string id, string displayName, bool hideFromAddressBook) internal override void SetDistributionGroup(Runspace runSpace, string id, string displayName, bool hideFromAddressBook)
{ {
Command cmd = new Command("Set-DistributionGroup"); Command cmd = new Command("Set-DistributionGroup");
cmd.Parameters.Add("Identity", id); cmd.Parameters.Add("Identity", id);
cmd.Parameters.Add("DisplayName", displayName); cmd.Parameters.Add("DisplayName", displayName);
cmd.Parameters.Add("HiddenFromAddressListsEnabled", hideFromAddressBook); cmd.Parameters.Add("HiddenFromAddressListsEnabled", hideFromAddressBook);
cmd.Parameters.Add("BypassSecurityGroupManagerCheck"); cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
ExecuteShellCommand(runSpace, cmd); ExecuteShellCommand(runSpace, cmd);
} }
internal override void SetGroup(Runspace runSpace, string id, string managedBy, string notes) internal override void SetGroup(Runspace runSpace, string id, string managedBy, string notes)
{ {
Command cmd = new Command("Set-Group"); Command cmd = new Command("Set-Group");
cmd.Parameters.Add("Identity", id); cmd.Parameters.Add("Identity", id);
cmd.Parameters.Add("ManagedBy", managedBy); cmd.Parameters.Add("ManagedBy", managedBy);
cmd.Parameters.Add("Notes", notes); cmd.Parameters.Add("Notes", notes);
cmd.Parameters.Add("BypassSecurityGroupManagerCheck"); cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
ExecuteShellCommand(runSpace, cmd); ExecuteShellCommand(runSpace, cmd);
} }
internal override void RemoveDistributionGroupMember(Runspace runSpace, string group, string member) internal override void RemoveDistributionGroupMember(Runspace runSpace, string group, string member)
{ {
Command cmd = new Command("Remove-DistributionGroupMember"); Command cmd = new Command("Remove-DistributionGroupMember");
cmd.Parameters.Add("Identity", group); cmd.Parameters.Add("Identity", group);
cmd.Parameters.Add("Member", member); cmd.Parameters.Add("Member", member);
cmd.Parameters.Add("Confirm", false); cmd.Parameters.Add("Confirm", false);
cmd.Parameters.Add("BypassSecurityGroupManagerCheck"); cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
ExecuteShellCommand(runSpace, cmd); ExecuteShellCommand(runSpace, cmd);
} }
internal override void AddDistributionGroupMember(Runspace runSpace, string group, string member) internal override void AddDistributionGroupMember(Runspace runSpace, string group, string member)
{ {
Command cmd = new Command("Add-DistributionGroupMember"); Command cmd = new Command("Add-DistributionGroupMember");
cmd.Parameters.Add("Identity", group); cmd.Parameters.Add("Identity", group);
cmd.Parameters.Add("Member", member); cmd.Parameters.Add("Member", member);
cmd.Parameters.Add("BypassSecurityGroupManagerCheck"); cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
ExecuteShellCommand(runSpace, cmd); ExecuteShellCommand(runSpace, cmd);
} }
internal override void SetDistributionListSendOnBehalfAccounts(Runspace runspace, string accountName, string[] sendOnBehalfAccounts) internal override void SetDistributionListSendOnBehalfAccounts(Runspace runspace, string accountName, string[] sendOnBehalfAccounts)
{ {
ExchangeLog.LogStart("SetDistributionListSendOnBehalfAccounts"); ExchangeLog.LogStart("SetDistributionListSendOnBehalfAccounts");
Command cmd = new Command("Set-DistributionGroup"); Command cmd = new Command("Set-DistributionGroup");
cmd.Parameters.Add("Identity", accountName); cmd.Parameters.Add("Identity", accountName);
cmd.Parameters.Add("GrantSendOnBehalfTo", SetSendOnBehalfAccounts(runspace, sendOnBehalfAccounts)); cmd.Parameters.Add("GrantSendOnBehalfTo", SetSendOnBehalfAccounts(runspace, sendOnBehalfAccounts));
cmd.Parameters.Add("BypassSecurityGroupManagerCheck"); cmd.Parameters.Add("BypassSecurityGroupManagerCheck");
ExecuteShellCommand(runspace, cmd); ExecuteShellCommand(runspace, cmd);
ExchangeLog.LogEnd("SetDistributionListSendOnBehalfAccounts"); ExchangeLog.LogEnd("SetDistributionListSendOnBehalfAccounts");
} }
#endregion #endregion
#region PowerShell integration #region PowerShell integration
internal override string ExchangeSnapInName internal override string ExchangeSnapInName
{ {
get { return "Microsoft.Exchange.Management.PowerShell.E2010"; } get { return "Microsoft.Exchange.Management.PowerShell.E2010"; }
} }
internal override Runspace OpenRunspace() internal override Runspace OpenRunspace()
{ {
Runspace runspace = base.OpenRunspace(); Runspace runspace = base.OpenRunspace();
Command cmd = new Command("Set-ADServerSettings"); Command cmd = new Command("Set-ADServerSettings");
cmd.Parameters.Add("PreferredServer", PrimaryDomainController); cmd.Parameters.Add("PreferredServer", PrimaryDomainController);
ExecuteShellCommand(runspace, cmd, false); ExecuteShellCommand(runspace, cmd, false);
return runspace; return runspace;
} }
internal static Assembly ResolveExchangeAssembly(object p, ResolveEventArgs args) internal static Assembly ResolveExchangeAssembly(object p, ResolveEventArgs args)
{ {
//Add path for the Exchange 2007 DLLs //Add path for the Exchange 2007 DLLs
if (args.Name.Contains("Microsoft.Exchange")) if (args.Name.Contains("Microsoft.Exchange"))
{ {
string exchangePath = GetExchangePath(); string exchangePath = GetExchangePath();
if (string.IsNullOrEmpty(exchangePath)) if (string.IsNullOrEmpty(exchangePath))
return null; return null;
string path = Path.Combine(exchangePath, args.Name.Split(',')[0] + ".dll"); string path = Path.Combine(exchangePath, args.Name.Split(',')[0] + ".dll");
if (!File.Exists(path)) if (!File.Exists(path))
return null; return null;
ExchangeLog.DebugInfo("Resolved assembly: {0}", path);
return Assembly.LoadFrom(path); ExchangeLog.DebugInfo("Resolved assembly: {0}", path);
}
else
{
return null;
}
}
#endregion return Assembly.LoadFrom(path);
}
else
{
return null;
}
}
#region Storage #endregion
internal override string CreateStorageGroup(Runspace runSpace, string name, string server)
{
return string.Empty;
}
internal override string CreateMailboxDatabase(Runspace runSpace, string name, string storageGroup) #region Storage
{ internal override string CreateStorageGroup(Runspace runSpace, string name, string server)
ExchangeLog.LogStart("CreateMailboxDatabase"); {
string id; return string.Empty;
}
internal override string CreateMailboxDatabase(Runspace runSpace, string name, string storageGroup)
{
ExchangeLog.LogStart("CreateMailboxDatabase");
string id;
if (name != "*") if (name != "*")
{ {
Command cmd = new Command("Get-MailboxDatabase"); Command cmd = new Command("Get-MailboxDatabase");
@ -220,31 +220,31 @@ namespace WebsitePanel.Providers.HostedSolution
{ {
id = "*"; id = "*";
} }
ExchangeLog.LogEnd("CreateMailboxDatabase"); ExchangeLog.LogEnd("CreateMailboxDatabase");
return id; return id;
} }
#endregion #endregion
public override bool IsInstalled() public override bool IsInstalled()
{ {
int value = 0; int value = 0;
bool bResult = false; bool bResult = false;
RegistryKey root = Registry.LocalMachine; RegistryKey root = Registry.LocalMachine;
RegistryKey rk = root.OpenSubKey(ExchangeRegistryPath); RegistryKey rk = root.OpenSubKey(ExchangeRegistryPath);
if (rk != null) if (rk != null)
{ {
value = (int)rk.GetValue("MsiProductMajor", null); value = (int)rk.GetValue("MsiProductMajor", null);
if (value == 14) if (value == 14)
{ {
value = (int)rk.GetValue("MsiProductMinor", null); value = (int)rk.GetValue("MsiProductMinor", null);
if ((value == 0) | (value == 1)) bResult = true; if ((value == 0) | (value == 1)) bResult = true;
} }
rk.Close(); rk.Close();
} }
return bResult; return bResult;
} }
} }
} }

View file

@ -493,7 +493,7 @@ namespace WebsitePanel.Providers.HostedSolution
cmd.Parameters.Add("Identity", id); cmd.Parameters.Add("Identity", id);
cmd.Parameters.Add("Confirm", false); cmd.Parameters.Add("Confirm", false);
ExecuteShellCommand(runSpace, cmd); ExecuteShellCommand(runSpace, cmd);
if (addressbookPolicy == (upn + " AP")) if (addressbookPolicy == (upn + " AP"))
{ {

View file

@ -36,52 +36,52 @@ namespace WebsitePanel.Providers.HostedSolution
/// <summary> /// <summary>
/// Exchange Log Helper Methods /// Exchange Log Helper Methods
/// </summary> /// </summary>
internal class ExchangeLog public static class ExchangeLog
{ {
internal static string LogPrefix = "Exchange"; public static string LogPrefix = "Exchange";
internal static void LogStart(string message, params object[] args) public static void LogStart(string message, params object[] args)
{ {
string text = String.Format(message, args); string text = String.Format(message, args);
Log.WriteStart("{0} {1}", LogPrefix, text); Log.WriteStart("{0} {1}", LogPrefix, text);
} }
internal static void LogEnd(string message, params object[] args) public static void LogEnd(string message, params object[] args)
{ {
string text = String.Format(message, args); string text = String.Format(message, args);
Log.WriteEnd("{0} {1}", LogPrefix, text); Log.WriteEnd("{0} {1}", LogPrefix, text);
} }
internal static void LogInfo(string message, params object[] args) public static void LogInfo(string message, params object[] args)
{ {
string text = String.Format(message, args); string text = String.Format(message, args);
Log.WriteInfo("{0} {1}", LogPrefix, text); Log.WriteInfo("{0} {1}", LogPrefix, text);
} }
internal static void LogWarning(string message, params object[] args) public static void LogWarning(string message, params object[] args)
{ {
string text = String.Format(message, args); string text = String.Format(message, args);
Log.WriteWarning("{0} {1}", LogPrefix, text); Log.WriteWarning("{0} {1}", LogPrefix, text);
} }
internal static void LogError(Exception ex) public static void LogError(Exception ex)
{ {
Log.WriteError(LogPrefix, ex); Log.WriteError(LogPrefix, ex);
} }
internal static void LogError(string message, Exception ex) public static void LogError(string message, Exception ex)
{ {
string text = String.Format("{0} {1}", LogPrefix, message); string text = String.Format("{0} {1}", LogPrefix, message);
Log.WriteError(text, ex); Log.WriteError(text, ex);
} }
internal static void DebugInfo(string message, params object[] args) public static void DebugInfo(string message, params object[] args)
{ {
string text = String.Format(message, args); string text = String.Format(message, args);
Log.WriteInfo("{0} {1}", LogPrefix, text); Log.WriteInfo("{0} {1}", LogPrefix, text);
} }
internal static void DebugCommand(Command cmd) public static void DebugCommand(Command cmd)
{ {
StringBuilder sb = new StringBuilder(cmd.CommandText); StringBuilder sb = new StringBuilder(cmd.CommandText);
foreach (CommandParameter parameter in cmd.Parameters) foreach (CommandParameter parameter in cmd.Parameters)

View file

@ -30,7 +30,7 @@ using System.Collections.Generic;
namespace WebsitePanel.Providers.HostedSolution namespace WebsitePanel.Providers.HostedSolution
{ {
internal class ExchangeTransaction public class ExchangeTransaction
{ {
List<TransactionAction> actions = null; List<TransactionAction> actions = null;
@ -39,12 +39,12 @@ namespace WebsitePanel.Providers.HostedSolution
actions = new List<TransactionAction>(); actions = new List<TransactionAction>();
} }
internal List<TransactionAction> Actions public List<TransactionAction> Actions
{ {
get { return actions; } get { return actions; }
} }
internal void RegisterNewOrganizationUnit(string id) public void RegisterNewOrganizationUnit(string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateOrganizationUnit; action.ActionType = TransactionAction.TransactionActionTypes.CreateOrganizationUnit;
@ -69,7 +69,7 @@ namespace WebsitePanel.Providers.HostedSolution
Actions.Add(action); Actions.Add(action);
} }
internal void RegisterNewGlobalAddressList(string id) public void RegisterNewGlobalAddressList(string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateGlobalAddressList; action.ActionType = TransactionAction.TransactionActionTypes.CreateGlobalAddressList;
@ -77,7 +77,7 @@ namespace WebsitePanel.Providers.HostedSolution
Actions.Add(action); Actions.Add(action);
} }
internal void RegisterNewAddressList(string id) public void RegisterNewAddressList(string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressList; action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressList;
@ -85,7 +85,7 @@ namespace WebsitePanel.Providers.HostedSolution
Actions.Add(action); Actions.Add(action);
} }
internal void RegisterNewAddressBookPolicy(string id) public void RegisterNewAddressBookPolicy(string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressBookPolicy; action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressBookPolicy;
@ -94,7 +94,7 @@ namespace WebsitePanel.Providers.HostedSolution
} }
internal void RegisterNewRoomsAddressList(string id) public void RegisterNewRoomsAddressList(string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressList; action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressList;
@ -103,7 +103,7 @@ namespace WebsitePanel.Providers.HostedSolution
} }
internal void RegisterNewOfflineAddressBook(string id) public void RegisterNewOfflineAddressBook(string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateOfflineAddressBook; action.ActionType = TransactionAction.TransactionActionTypes.CreateOfflineAddressBook;
@ -111,7 +111,7 @@ namespace WebsitePanel.Providers.HostedSolution
Actions.Add(action); Actions.Add(action);
} }
internal void RegisterNewActiveSyncPolicy(string id) public void RegisterNewActiveSyncPolicy(string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateActiveSyncPolicy; action.ActionType = TransactionAction.TransactionActionTypes.CreateActiveSyncPolicy;
@ -120,7 +120,7 @@ namespace WebsitePanel.Providers.HostedSolution
} }
internal void RegisterNewAcceptedDomain(string id) public void RegisterNewAcceptedDomain(string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateAcceptedDomain; action.ActionType = TransactionAction.TransactionActionTypes.CreateAcceptedDomain;
@ -128,7 +128,7 @@ namespace WebsitePanel.Providers.HostedSolution
Actions.Add(action); Actions.Add(action);
} }
internal void RegisterNewUPNSuffix(string id, string suffix) public void RegisterNewUPNSuffix(string id, string suffix)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.AddUPNSuffix; action.ActionType = TransactionAction.TransactionActionTypes.AddUPNSuffix;
@ -137,7 +137,7 @@ namespace WebsitePanel.Providers.HostedSolution
Actions.Add(action); Actions.Add(action);
} }
internal void RegisterNewMailbox(string id) public void RegisterNewMailbox(string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateMailbox; action.ActionType = TransactionAction.TransactionActionTypes.CreateMailbox;
@ -145,7 +145,7 @@ namespace WebsitePanel.Providers.HostedSolution
Actions.Add(action); Actions.Add(action);
} }
internal void RegisterEnableMailbox(string id) public void RegisterEnableMailbox(string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.EnableMailbox; action.ActionType = TransactionAction.TransactionActionTypes.EnableMailbox;
@ -154,7 +154,7 @@ namespace WebsitePanel.Providers.HostedSolution
} }
internal void RegisterNewContact(string id) public void RegisterNewContact(string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateContact; action.ActionType = TransactionAction.TransactionActionTypes.CreateContact;
@ -162,7 +162,7 @@ namespace WebsitePanel.Providers.HostedSolution
Actions.Add(action); Actions.Add(action);
} }
internal void RegisterNewPublicFolder(string id) public void RegisterNewPublicFolder(string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreatePublicFolder; action.ActionType = TransactionAction.TransactionActionTypes.CreatePublicFolder;
@ -170,7 +170,7 @@ namespace WebsitePanel.Providers.HostedSolution
Actions.Add(action); Actions.Add(action);
} }
internal void AddMailBoxFullAccessPermission(string accountName, string id) public void AddMailBoxFullAccessPermission(string accountName, string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.AddMailboxFullAccessPermission; action.ActionType = TransactionAction.TransactionActionTypes.AddMailboxFullAccessPermission;
@ -179,7 +179,7 @@ namespace WebsitePanel.Providers.HostedSolution
Actions.Add(action); Actions.Add(action);
} }
internal void AddSendAsPermission(string accountName, string id) public void AddSendAsPermission(string accountName, string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.AddSendAsPermission; action.ActionType = TransactionAction.TransactionActionTypes.AddSendAsPermission;
@ -188,7 +188,7 @@ namespace WebsitePanel.Providers.HostedSolution
Actions.Add(action); Actions.Add(action);
} }
internal void RemoveMailboxFullAccessPermission(string accountName, string id) public void RemoveMailboxFullAccessPermission(string accountName, string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.RemoveMailboxFullAccessPermission; action.ActionType = TransactionAction.TransactionActionTypes.RemoveMailboxFullAccessPermission;
@ -197,7 +197,7 @@ namespace WebsitePanel.Providers.HostedSolution
Actions.Add(action); Actions.Add(action);
} }
internal void RemoveSendAsPermission(string accountName, string id) public void RemoveSendAsPermission(string accountName, string id)
{ {
TransactionAction action = new TransactionAction(); TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.RemoveSendAsPermission; action.ActionType = TransactionAction.TransactionActionTypes.RemoveSendAsPermission;

View file

@ -111,6 +111,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.Web.
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.FTP.IIs80", "WebsitePanel.Providers.FTP.IIs80\WebsitePanel.Providers.FTP.IIs80.csproj", "{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.FTP.IIs80", "WebsitePanel.Providers.FTP.IIs80\WebsitePanel.Providers.FTP.IIs80.csproj", "{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.HostedSolution.Exchange2013", "WebsitePanel.Providers.HostedSolution.Exchange2013\WebsitePanel.Providers.HostedSolution.Exchange2013.csproj", "{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -611,6 +613,16 @@ Global
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Mixed Platforms.Build.0 = Release|Any CPU {D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|x86.ActiveCfg = Release|Any CPU {D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|x86.ActiveCfg = Release|Any CPU
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Debug|x86.ActiveCfg = Debug|Any CPU
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Release|Any CPU.Build.0 = Release|Any CPU
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{BC094166-B6A1-4D42-B53C-FF956FC7A4A1}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE