Import.Enterprise fix
This commit is contained in:
parent
25fdedd221
commit
1f5d09fbb1
2 changed files with 64 additions and 32 deletions
|
@ -164,13 +164,38 @@ namespace WebsitePanel.Import.Enterprise
|
|||
type = null;
|
||||
email = null;
|
||||
name = (string)child.Properties["name"].Value;
|
||||
|
||||
//account type
|
||||
typeProp = child.Properties["msExchRecipientDisplayType"];
|
||||
|
||||
int typeDetails = 0;
|
||||
PropertyValueCollection typeDetailsProp = child.Properties["msExchRecipientTypeDetails"];
|
||||
if (typeDetailsProp != null)
|
||||
{
|
||||
if (typeDetailsProp.Value != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
object adsLargeInteger = typeDetailsProp.Value;
|
||||
typeDetails = (Int32)adsLargeInteger.GetType().InvokeMember("LowPart", System.Reflection.BindingFlags.GetProperty, null, adsLargeInteger, null);
|
||||
}
|
||||
catch { } // just skip
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
switch (child.SchemaClassName)
|
||||
{
|
||||
case "user":
|
||||
email = (string)child.Properties["userPrincipalName"].Value;
|
||||
|
||||
if (typeDetails == 4)
|
||||
{
|
||||
type = "Shared Mailbox";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (typeProp == null || typeProp.Value == null)
|
||||
{
|
||||
type = "User";
|
||||
|
@ -191,6 +216,7 @@ namespace WebsitePanel.Import.Enterprise
|
|||
type = "Equipment Mailbox";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(type))
|
||||
{
|
||||
|
|
|
@ -781,12 +781,20 @@ namespace WebsitePanel.Import.Enterprise
|
|||
}
|
||||
int mailboxType = (int)type.Value;
|
||||
|
||||
PropertyValueCollection typeDetails = entry.Properties["msExchRecipientTypeDetails"];
|
||||
int mailboxTypeDetails = 0;
|
||||
PropertyValueCollection typeDetails = entry.Properties["msExchRecipientTypeDetails"];
|
||||
if (typeDetails!=null)
|
||||
{
|
||||
if (typeDetails.Value != null)
|
||||
mailboxTypeDetails = (int)typeDetails.Value;
|
||||
{
|
||||
try
|
||||
{
|
||||
object adsLargeInteger = typeDetails.Value;
|
||||
mailboxTypeDetails = (Int32)adsLargeInteger.GetType().InvokeMember("LowPart", System.Reflection.BindingFlags.GetProperty, null, adsLargeInteger, null);
|
||||
}
|
||||
catch { } // just skip
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
ExchangeAccountType accountType = ExchangeAccountType.Undefined;
|
||||
|
@ -831,12 +839,11 @@ namespace WebsitePanel.Import.Enterprise
|
|||
if (emailAddress.ToLower().StartsWith("smtp:"))
|
||||
emailAddress = emailAddress.Substring(5);
|
||||
|
||||
|
||||
if (!emailAddress.Equals(defaultEmail, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
if (EmailAddressExists(emailAddress))
|
||||
{
|
||||
if ((!emailAddress.Equals(defaultEmail, StringComparison.InvariantCultureIgnoreCase)) && (!emailAddress.Equals(email, StringComparison.InvariantCultureIgnoreCase)))
|
||||
Log.WriteInfo(string.Format("Email address {0} already exists. Skipped", emailAddress));
|
||||
|
||||
continue;
|
||||
}
|
||||
// register email address
|
||||
|
@ -844,7 +851,6 @@ namespace WebsitePanel.Import.Enterprise
|
|||
AddAccountEmailAddress(userId, emailAddress);
|
||||
}
|
||||
}
|
||||
}
|
||||
Log.WriteEnd("User imported");
|
||||
return userId;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue