This commit is contained in:
Virtuworks 2013-01-18 18:59:56 -05:00
commit 68b9d85271
7 changed files with 124 additions and 109 deletions

View file

@ -92,7 +92,10 @@ namespace WebsitePanel.Import.CsvBulk
private int PagerIndex = -1; private int PagerIndex = -1;
private int WebPageIndex = -1; private int WebPageIndex = -1;
private int NotesIndex = -1; private int NotesIndex = -1;
private int PlanIndex = -1;
private int defaultPlanId = -1;
private Dictionary<string, int> planName2Id = new Dictionary<string,int>();
public ExchangeImport() public ExchangeImport()
{ {
@ -184,6 +187,8 @@ namespace WebsitePanel.Import.CsvBulk
} }
index = 0; index = 0;
GetMailboxPlans(orgId);
using (StreamReader sr = new StreamReader(inputFile)) using (StreamReader sr = new StreamReader(inputFile))
{ {
string line; string line;
@ -210,6 +215,22 @@ namespace WebsitePanel.Import.CsvBulk
} }
} }
private void GetMailboxPlans(int orgId)
{
ExchangeMailboxPlan[] plans = ES.Services.ExchangeServer.GetExchangeMailboxPlans(orgId);
foreach (ExchangeMailboxPlan plan in plans)
{
if (!planName2Id.ContainsKey(plan.MailboxPlan))
{
planName2Id.Add(plan.MailboxPlan, plan.MailboxPlanId);
}
if (plan.IsDefault)
{
defaultPlanId = plan.MailboxPlanId;
}
}
}
private void ShowSummary() private void ShowSummary()
{ {
Log.WriteLine(string.Format("{0} line(s) processed", index)); Log.WriteLine(string.Format("{0} line(s) processed", index));
@ -286,7 +307,9 @@ namespace WebsitePanel.Import.CsvBulk
WebPageIndex = i; WebPageIndex = i;
else if (StringEquals(cells[i], "Notes")) else if (StringEquals(cells[i], "Notes"))
NotesIndex = i; NotesIndex = i;
} else if (StringEquals(cells[i], "Mailbox Plan"))
PlanIndex = i;
}
return true; return true;
} }
//check csv structure //check csv structure
@ -430,6 +453,29 @@ namespace WebsitePanel.Import.CsvBulk
string webPage = cells[WebPageIndex]; string webPage = cells[WebPageIndex];
string notes = cells[NotesIndex]; string notes = cells[NotesIndex];
int planId;
// do we have plan-column?
if (PlanIndex > -1)
{
string planName = cells[PlanIndex];
if (!planName2Id.TryGetValue(planName, out planId))
{
Log.WriteInfo(String.Format("Warning at line {0}: Plan named {1} does not exist!", index + 1, planName));
// fall back to default plan
planId = defaultPlanId;
}
}
// or not?
else
{
// fall back to default plan
planId = defaultPlanId;
}
if (planId < 0)
{
Log.WriteError(string.Format("Error at line {0}: No valid plan name and/or no valid default plan", index + 1));
return false;
}
@ -480,7 +526,7 @@ namespace WebsitePanel.Import.CsvBulk
//create mailbox using web service //create mailbox using web service
if (!CreateMailbox(index, orgId, displayName, emailAddress, password, firstName, middleName, lastName, if (!CreateMailbox(index, orgId, displayName, emailAddress, password, firstName, middleName, lastName,
address, city, state, zip, country, jobTitle, company, department, office, address, city, state, zip, country, jobTitle, company, department, office,
businessPhone, fax, homePhone, mobilePhone, pager, webPage, notes)) businessPhone, fax, homePhone, mobilePhone, pager, webPage, notes, planId))
{ {
return false; return false;
} }
@ -517,7 +563,7 @@ namespace WebsitePanel.Import.CsvBulk
/// </summary> /// </summary>
private bool CreateMailbox(int index, int orgId, string displayName, string emailAddress, string password, string firstName, string middleName, string lastName, private bool CreateMailbox(int index, int orgId, string displayName, string emailAddress, string password, string firstName, string middleName, string lastName,
string address, string city, string state, string zip, string country, string jobTitle, string company, string department, string office, string address, string city, string state, string zip, string country, string jobTitle, string company, string department, string office,
string businessPhone, string fax, string homePhone, string mobilePhone, string pager, string webPage, string notes) string businessPhone, string fax, string homePhone, string mobilePhone, string pager, string webPage, string notes, int planId)
{ {
bool ret = false; bool ret = false;
try try
@ -528,7 +574,7 @@ namespace WebsitePanel.Import.CsvBulk
//create mailbox //create mailbox
//ES.Services.ExchangeServer. //ES.Services.ExchangeServer.
string accountName = string.Empty; string accountName = string.Empty;
int accountId = ES.Services.ExchangeServer.CreateMailbox(orgId, 0, ExchangeAccountType.Mailbox, accountName, displayName, name, domain, password, false, string.Empty, 0, string.Empty); int accountId = ES.Services.ExchangeServer.CreateMailbox(orgId, 0, ExchangeAccountType.Mailbox, accountName, displayName, name, domain, password, false, string.Empty, planId, string.Empty);
if (accountId < 0) if (accountId < 0)
{ {
string errorMessage = GetErrorMessage(accountId); string errorMessage = GetErrorMessage(accountId);
@ -557,7 +603,6 @@ namespace WebsitePanel.Import.CsvBulk
mailbox.WebPage = webPage; mailbox.WebPage = webPage;
mailbox.Notes = notes; mailbox.Notes = notes;
//update mailbox //update mailbox
/* /*
ES.Services.ExchangeServer.SetMailboxGeneralSettings(orgId, accountId, mailbox.DisplayName, ES.Services.ExchangeServer.SetMailboxGeneralSettings(orgId, accountId, mailbox.DisplayName,

View file

@ -310,25 +310,25 @@ namespace WebsitePanel.EnterpriseServer
// error while creating mail account // error while creating mail account
throw new Exception("Could not create mail account", ex); throw new Exception("Could not create mail account", ex);
} }
}
// Instant Alias / Temporary URL // Instant Alias / Temporary URL
if (tempDomain && (domainId > 0)) if (tempDomain && (domainId > 0))
{
int instantAliasId = ServerController.CreateDomainInstantAlias("", domainId);
if (instantAliasId < 0)
{ {
int instantAliasId = ServerController.CreateDomainInstantAlias("", domainId); // rollback wizard
if (instantAliasId < 0) Rollback();
{
// rollback wizard
Rollback();
return instantAliasId; return instantAliasId;
}
} }
}
// Domain DNS Zone // Domain DNS Zone
if (createZoneRecord && (domainId > 0)) if (createZoneRecord && (domainId > 0))
{ {
ServerController.EnableDomainDns(domainId); ServerController.EnableDomainDns(domainId);
}
} }
} }

View file

@ -200,29 +200,23 @@ namespace WebsitePanel.Providers.Mail
{ {
try try
{ {
svcUserAdmin users = new svcUserAdmin();
PrepareProxy(users);
// get mailbox size StatInfoResult userStats = users.GetUserStats(AdminUsername, AdminPassword, item.Name, DateTime.Now, DateTime.Now);
string name = item.Name; if (!userStats.Result)
{
throw new Exception(userStats.Message);
}
// try to get SmarterMail postoffices path Log.WriteStart(String.Format("Calculating mail account '{0}' size", item.Name));
string poPath = DomainsPath; // calculate disk space
if (poPath == null) ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace();
continue; diskspace.ItemId = item.Id;
//diskspace.DiskSpace = 0;
string mailboxName = name.Substring(0, name.IndexOf("@")); diskspace.DiskSpace = userStats.BytesSize;
string domainName = name.Substring(name.IndexOf("@") + 1); itemsDiskspace.Add(diskspace);
Log.WriteEnd(String.Format("Calculating mail account '{0}' size", item.Name));
string mailboxPath = Path.Combine(DomainsPath, String.Format("{0}\\Users\\{1}", domainName, mailboxName));
Log.WriteStart(String.Format("Calculating '{0}' folder size", mailboxPath));
// calculate disk space
ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace();
diskspace.ItemId = item.Id;
//diskspace.DiskSpace = 0;
diskspace.DiskSpace = FileUtils.CalculateFolderSize(mailboxPath);
itemsDiskspace.Add(diskspace);
Log.WriteEnd(String.Format("Calculating '{0}' folder size", mailboxPath));
} }
catch (Exception ex) catch (Exception ex)
{ {

View file

@ -1570,29 +1570,23 @@ namespace WebsitePanel.Providers.Mail
{ {
try try
{ {
svcUserAdmin users = new svcUserAdmin();
PrepareProxy(users);
// get mailbox size StatInfoResult userStats = users.GetUserStats(AdminUsername, AdminPassword, item.Name, DateTime.Now, DateTime.Now);
string name = item.Name; if (!userStats.Result)
{
// try to get SmarterMail postoffices path throw new Exception(userStats.Message);
string poPath = DomainsPath; }
if (poPath == null)
continue;
string mailboxName = name.Substring(0, name.IndexOf("@"));
string domainName = name.Substring(name.IndexOf("@") + 1);
string mailboxPath = Path.Combine(DomainsPath, String.Format("{0}\\Users\\{1}", domainName, mailboxName));
Log.WriteStart(String.Format("Calculating '{0}' folder size", mailboxPath));
Log.WriteStart(String.Format("Calculating mail account '{0}' size", item.Name));
// calculate disk space // calculate disk space
ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace(); ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace();
diskspace.ItemId = item.Id; diskspace.ItemId = item.Id;
//diskspace.DiskSpace = 0; //diskspace.DiskSpace = 0;
diskspace.DiskSpace = FileUtils.CalculateFolderSize(mailboxPath); diskspace.DiskSpace = userStats.BytesSize;
itemsDiskspace.Add(diskspace); itemsDiskspace.Add(diskspace);
Log.WriteEnd(String.Format("Calculating '{0}' folder size", mailboxPath)); Log.WriteEnd(String.Format("Calculating mail account '{0}' size", item.Name));
} }
catch (Exception ex) catch (Exception ex)
{ {

View file

@ -200,29 +200,23 @@ namespace WebsitePanel.Providers.Mail
{ {
try try
{ {
svcUserAdmin users = new svcUserAdmin();
PrepareProxy(users);
// get mailbox size StatInfoResult userStats = users.GetUserStats(AdminUsername, AdminPassword, item.Name, DateTime.Now, DateTime.Now);
string name = item.Name; if (!userStats.Result)
{
// try to get SmarterMail postoffices path throw new Exception(userStats.Message);
string poPath = DomainsPath; }
if (poPath == null)
continue;
string mailboxName = name.Substring(0, name.IndexOf("@"));
string domainName = name.Substring(name.IndexOf("@") + 1);
string mailboxPath = Path.Combine(DomainsPath, String.Format("{0}\\Users\\{1}", domainName, mailboxName));
Log.WriteStart(String.Format("Calculating '{0}' folder size", mailboxPath));
Log.WriteStart(String.Format("Calculating mail account '{0}' size", item.Name));
// calculate disk space // calculate disk space
ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace(); ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace();
diskspace.ItemId = item.Id; diskspace.ItemId = item.Id;
//diskspace.DiskSpace = 0; //diskspace.DiskSpace = 0;
diskspace.DiskSpace = FileUtils.CalculateFolderSize(mailboxPath); diskspace.DiskSpace = userStats.BytesSize;
itemsDiskspace.Add(diskspace); itemsDiskspace.Add(diskspace);
Log.WriteEnd(String.Format("Calculating '{0}' folder size", mailboxPath)); Log.WriteEnd(String.Format("Calculating mail account '{0}' size", item.Name));
} }
catch (Exception ex) catch (Exception ex)
{ {

View file

@ -200,29 +200,23 @@ namespace WebsitePanel.Providers.Mail
{ {
try try
{ {
svcUserAdmin users = new svcUserAdmin();
PrepareProxy(users);
// get mailbox size StatInfoResult userStats = users.GetUserStats(AdminUsername, AdminPassword, item.Name, DateTime.Now, DateTime.Now);
string name = item.Name; if (!userStats.Result)
{
throw new Exception(userStats.Message);
}
// try to get SmarterMail postoffices path Log.WriteStart(String.Format("Calculating mail account '{0}' size", item.Name));
string poPath = DomainsPath; // calculate disk space
if (poPath == null) ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace();
continue; diskspace.ItemId = item.Id;
//diskspace.DiskSpace = 0;
string mailboxName = name.Substring(0, name.IndexOf("@")); diskspace.DiskSpace = userStats.BytesSize;
string domainName = name.Substring(name.IndexOf("@") + 1); itemsDiskspace.Add(diskspace);
Log.WriteEnd(String.Format("Calculating mail account '{0}' size", item.Name));
string mailboxPath = Path.Combine(DomainsPath, String.Format("{0}\\Users\\{1}", domainName, mailboxName));
Log.WriteStart(String.Format("Calculating '{0}' folder size", mailboxPath));
// calculate disk space
ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace();
diskspace.ItemId = item.Id;
//diskspace.DiskSpace = 0;
diskspace.DiskSpace = FileUtils.CalculateFolderSize(mailboxPath);
itemsDiskspace.Add(diskspace);
Log.WriteEnd(String.Format("Calculating '{0}' folder size", mailboxPath));
} }
catch (Exception ex) catch (Exception ex)
{ {

View file

@ -200,29 +200,23 @@ namespace WebsitePanel.Providers.Mail
{ {
try try
{ {
svcUserAdmin users = new svcUserAdmin();
PrepareProxy(users);
// get mailbox size StatInfoResult userStats = users.GetUserStats(AdminUsername, AdminPassword, item.Name, DateTime.Now, DateTime.Now);
string name = item.Name; if (!userStats.Result)
{
// try to get SmarterMail postoffices path throw new Exception(userStats.Message);
string poPath = DomainsPath; }
if (poPath == null)
continue;
string mailboxName = name.Substring(0, name.IndexOf("@"));
string domainName = name.Substring(name.IndexOf("@") + 1);
string mailboxPath = Path.Combine(DomainsPath, String.Format("{0}\\Users\\{1}", domainName, mailboxName));
Log.WriteStart(String.Format("Calculating '{0}' folder size", mailboxPath));
Log.WriteStart(String.Format("Calculating mail account '{0}' size", item.Name));
// calculate disk space // calculate disk space
ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace(); ServiceProviderItemDiskSpace diskspace = new ServiceProviderItemDiskSpace();
diskspace.ItemId = item.Id; diskspace.ItemId = item.Id;
//diskspace.DiskSpace = 0; //diskspace.DiskSpace = 0;
diskspace.DiskSpace = FileUtils.CalculateFolderSize(mailboxPath); diskspace.DiskSpace = userStats.BytesSize;
itemsDiskspace.Add(diskspace); itemsDiskspace.Add(diskspace);
Log.WriteEnd(String.Format("Calculating '{0}' folder size", mailboxPath)); Log.WriteEnd(String.Format("Calculating mail account '{0}' size", item.Name));
} }
catch (Exception ex) catch (Exception ex)
{ {