public main()
{
InitializeComponent();
//Initialize bindings
userBinding.DataSource = typeof(ADUser);
groupBinding.DataSource = typeof(ICollection<String>);
//Add bindings from controls to data structures
userName.DataBindings.Add("Text", userBinding, "GivenName");
userSurname.DataBindings.Add("Text", userBinding, "Surname");
userDisplayName.DataBindings.Add("Text", userBinding, "DisplayName");
userDescription.DataBindings.Add("Text", userBinding, "Description");
userEmail.DataBindings.Add("Text", userBinding, "EmailAddress");
userMainPhone.DataBindings.Add("Text", userBinding, "VoiceTelephoneNumber");
userSAMAccountName.DataBindings.Add("Text", userBinding, "SamAccountName");
userCompany.DataBindings.Add("Text", userBinding, "Company");
userIPPhone.DataBindings.Add("Text", userBinding, "IPPhone");
userMobile.DataBindings.Add("Text", userBinding, "Mobile");
userPager.DataBindings.Add("Text", userBinding, "Pager");
userPDON.DataBindings.Add("Text", userBinding, "PhysicalDeliveryOfficeName");
userAddress.DataBindings.Add("Text", userBinding, "StreetAddress");
userCity.DataBindings.Add("Text", userBinding, "City");
userState.DataBindings.Add("Text", userBinding, "State");
userPostalCode.DataBindings.Add("Text", userBinding, "PostalCode");
userCountry.DataBindings.Add("Text", userBinding, "Country");
userEmployeeType.DataBindings.Add("Text", userBinding, "EmployeeType");
userTitle.DataBindings.Add("Text", userBinding, "Title");
userDepartment.DataBindings.Add("Text", userBinding, "Department");
userManager.DataBindings.Add("Text", userBinding, "Manager");
userUPN.DataBindings.Add("Text", userBinding, "UserPrincipalName");
userEnabled.DataBindings.Add("Checked", userBinding, "Enabled",true, DataSourceUpdateMode.OnPropertyChanged);
searchResults.DataSource = userBinding;
searchResults.AutoGenerateColumns = true;
save.DataBindings.Add("Enabled", userBinding, "isSaveable");
deleteButton.DataBindings.Add("Enabled", userBinding, "isDeleteable");
//Handle the "position changed" event, so we can initialize non-bound controls for the new record
userBinding.PositionChanged += userBindings_NewCurrent;
userGroups.DataSource = groupBinding;
groupBinding.DataSource = userBinding;
groupBinding.DataMember = "Groups";
userGroups.DisplayMember = "Groups";
//Create a list of all our AD user controls so they can be iterated
allUserControls = new List<Control>()
{
userName,userSurname, userDisplayName, userEmail, userMainPhone, userGroups,
save, addGroup, removeGroup, deleteButton, userPassword1, userPassword2, userEnabled,
userDescription, userSAMAccountName, newGroup
};
//Disable all controls by default
set_Control_Enable(false);
searchType.SelectedIndex=0;
try
{
//Connect to the AD server
ad = new ActiveDirectory(ConfigurationManager.AppSettings["AdContainer"],
ConfigurationManager.AppSettings["AdName"],
ConfigurationManager.AppSettings["AdUserId"],
ConfigurationManager.AppSettings["AdPassword"]);
}
catch (PrincipalServerDownException ex)
{
//Print out the error text, write the status, and disable search controls
Error_Message(ex.Message);
Set_Status("AD connection failed");
queryString.Enabled = false;
search.Enabled = false;
newButton.Enabled = false;
}
}