Example #1
0
 public UserManagers(ADGroupMembersTable memberTable)
 {
     //
     // Required for Windows Form Designer support
     //
     InitializeComponent();
     this.memberTable = memberTable;
 }
        void propertyCheckTimer_Tick(object sender, EventArgs e)
        {
            bool     foundChange = false;
            DateTime checkDate   = DateTime.Now;
            List <PropertyMonitorSetting> setting = (List <PropertyMonitorSetting>)Properties.Settings.Default.PropertyMonitorSettings;

            for (int i = 0; i < setting.Count; i++)
            {
                if (checkDate >= setting[i].LastCheck.AddMinutes(setting[i].IntervalMinutes))
                {
                    try
                    {
                        ADGroupMembersTable user = ADHelper.GetAccount("", "", setting[i].IDToMonitor);
                        if (user.Count == 0)
                        {
                            continue;
                        }

                        if (user.Columns.Contains(setting[i].PropertyToMonitor))
                        {
                            if (user[0][setting[i].PropertyToMonitor].ToString() != setting[i].CurrentValue)
                            {
                                if (setting[i].LastCheck != DateTime.MinValue)
                                {
                                    foundChange = true;
                                }

                                setting[i].PreviousCheckTime = setting[i].LastCheck;
                                setting[i].PreviousValue     = setting[i].CurrentValue;
                                setting[i].NewValue          = user[0][setting[i].PropertyToMonitor].ToString();
                                setting[i].CurrentValue      = user[0][setting[i].PropertyToMonitor].ToString();
                            }
                            else
                            {
                                setting[i].NewValue = "";
                            }
                            setting[i].LastCheck = DateTime.Now;
                        }
                    }
                    catch (Exception)
                    {
                        //Catch in case the directory is not available
                    }
                }
            }

            Properties.Settings.Default.PropertyMonitorChanged -= new EventHandler(Default_PropertyMonitorChanged);
            Properties.Settings.Default.PropertyMonitorSettings = setting;
            Properties.Settings.Default.Save();
            Properties.Settings.Default.PropertyMonitorChanged += new EventHandler(Default_PropertyMonitorChanged);
            if (foundChange)
            {
                PropertyChangePopUp pop = new PropertyChangePopUp(setting);
                pop.Show();
            }
        }