Significant amount of changes to hosted organizations and exchange:

Exchange 2010 SP2 provisioning separated through a new provider
Exchange 2010 SP2 now compliant with product group guidelines
Support for Database Availability Group
Fixed Distribution List view scope to only tenant
Consumer support (individual mailboxes as hotmail) added
Mailbox configuration moved to mailbox plans concept
CN creation is now based on UPN
sAMAccountName generation revised and decoupled from tenant name
2007 (ACL Based), 2010 (ACL Bases), 2010 SP2 (ABP) supported
Automated Hosted Organization provisioning added to create hosting space
Enterprise Server webservice extended with ImportMethod
Mobile tab fixed
Added more information to users listview
This commit is contained in:
robvde 2012-07-09 12:03:24 +04:00
parent 2f8a580846
commit 50f2c43315
194 changed files with 12994 additions and 9755 deletions

View file

@ -30,228 +30,180 @@ using System.Collections.Generic;
namespace WebsitePanel.Providers.HostedSolution
{
internal class ExchangeTransaction
{
List<TransactionAction> actions = null;
internal class ExchangeTransaction
{
List<TransactionAction> actions = null;
public ExchangeTransaction()
{
actions = new List<TransactionAction>();
}
public ExchangeTransaction()
{
actions = new List<TransactionAction>();
}
internal List<TransactionAction> Actions
{
get { return actions; }
}
internal List<TransactionAction> Actions
{
get { return actions; }
}
internal void RegisterNewOrganizationUnit(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateOrganizationUnit;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewOrganizationUnit(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateOrganizationUnit;
action.Id = id;
Actions.Add(action);
}
public void RegisterNewDistributionGroup(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateDistributionGroup;
action.Id = id;
Actions.Add(action);
}
public void RegisterNewDistributionGroup(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateDistributionGroup;
action.Id = id;
Actions.Add(action);
}
public void RegisterMailEnabledDistributionGroup(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.EnableDistributionGroup;
action.Id = id;
Actions.Add(action);
}
public void RegisterMailEnabledDistributionGroup(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.EnableDistributionGroup;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewGlobalAddressList(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateGlobalAddressList;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewAddressList(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressList;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewAddressBookPolicy(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressBookPolicy;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewGlobalAddressList(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateGlobalAddressList;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewAddressList(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressList;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewRoomsAddressList(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateRoomsAddressList;
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressList;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewAddressPolicy(string id)
internal void RegisterNewOfflineAddressBook(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateAddressPolicy;
action.ActionType = TransactionAction.TransactionActionTypes.CreateOfflineAddressBook;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewActiveSyncPolicy(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateActiveSyncPolicy;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewOfflineAddressBook(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateOfflineAddressBook;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewAcceptedDomain(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateAcceptedDomain;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewActiveSyncPolicy(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateActiveSyncPolicy;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewUPNSuffix(string id, string suffix)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.AddUPNSuffix;
action.Id = id;
action.Suffix = suffix;
Actions.Add(action);
}
internal void RegisterNewMailbox(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateMailbox;
action.Id = id;
Actions.Add(action);
}
internal void RegisterEnableMailbox(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.EnableMailbox;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewAcceptedDomain(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateAcceptedDomain;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewContact(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateContact;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewUPNSuffix(string id, string suffix)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.AddUPNSuffix;
action.Id = id;
action.Suffix = suffix;
Actions.Add(action);
}
internal void RegisterNewPublicFolder(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreatePublicFolder;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewMailbox(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateMailbox;
action.Id = id;
Actions.Add(action);
}
internal void AddMailBoxFullAccessPermission(string accountName, string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.AddMailboxFullAccessPermission;
action.Id = id;
action.Account = accountName;
Actions.Add(action);
}
internal void RegisterNewContact(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreateContact;
action.Id = id;
Actions.Add(action);
}
internal void RegisterNewPublicFolder(string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.CreatePublicFolder;
action.Id = id;
Actions.Add(action);
}
internal void AddMailBoxFullAccessPermission(string accountName, string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.AddMailboxFullAccessPermission;
action.Id = id;
action.Account = accountName;
Actions.Add(action);
}
internal void AddSendAsPermission(string accountName, string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.AddSendAsPermission;
action.Id = id;
action.Account = accountName;
Actions.Add(action);
}
internal void RemoveMailboxFullAccessPermission(string accountName, string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.RemoveMailboxFullAccessPermission;
action.Id = id;
action.Account = accountName;
Actions.Add(action);
}
internal void RemoveSendAsPermission(string accountName, string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.RemoveSendAsPermission;
action.Id = id;
action.Account = accountName;
Actions.Add(action);
}
}
internal class TransactionAction
{
private TransactionActionTypes actionType;
public TransactionActionTypes ActionType
{
get { return actionType; }
set { actionType = value; }
}
private string id;
public string Id
{
get { return id; }
set { id = value; }
}
private string suffix;
public string Suffix
{
get { return suffix; }
set { suffix = value; }
}
private string account;
public string Account
{
get { return account; }
set { account = value; }
}
internal enum TransactionActionTypes
{
CreateOrganizationUnit,
CreateGlobalAddressList,
CreateAddressList,
CreateAddressPolicy,
CreateOfflineAddressBook,
CreateDistributionGroup,
EnableDistributionGroup,
CreateAcceptedDomain,
AddUPNSuffix,
CreateMailbox,
CreateContact,
CreatePublicFolder,
CreateActiveSyncPolicy,
AddMailboxFullAccessPermission,
AddSendAsPermission,
RemoveMailboxFullAccessPermission,
RemoveSendAsPermission,
CreateRoomsAddressList
};
}
internal void AddSendAsPermission(string accountName, string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.AddSendAsPermission;
action.Id = id;
action.Account = accountName;
Actions.Add(action);
}
internal void RemoveMailboxFullAccessPermission(string accountName, string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.RemoveMailboxFullAccessPermission;
action.Id = id;
action.Account = accountName;
Actions.Add(action);
}
internal void RemoveSendAsPermission(string accountName, string id)
{
TransactionAction action = new TransactionAction();
action.ActionType = TransactionAction.TransactionActionTypes.RemoveSendAsPermission;
action.Id = id;
action.Account = accountName;
Actions.Add(action);
}
}
}