Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Clinical ID Switcher
- * Justin Mangum
- * 05/19/2011
- *
- * Tasks to be done:
- * Design UI
- *
- *
- * Functions to be written:
- * SQL Query - resultSet querySCCM(Query);
- * Collection ADQuery(Group);
- *
- * Connection Strings:
- * Data Source=FTWSCCMSQL01\INSTANCE1;Initial Catalog=SMS_TH1;Integrated Security=True
- *
- *
- * Test Accounts Info:
- * User accounts:
- * JCPSite01 - 04 wired 01 - 03
- * JCPSite01 - 04 wireless 01 - 03
- *
- * Groups:
- * Wired Test Site 1-4
- * Wireless Test Site 1-4
- *
- */
- using System;
- using System.Collections;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.DirectoryServices;
- using System.DirectoryServices.AccountManagement;
- namespace Clinical_ID_Switcher
- {
- public partial class frmMain : Form
- {
- String[, ,] _SCCMInfo;
- String[, ,] _ADInfo;
- String[, ,] _Final;
- ArrayList listBoxes;
- String[] _sites;
- String[] _groups;
- public frmMain()
- {
- //var SCCMInfo;
- InitializeComponent();
- _SCCMInfo = new String[4, 2, 2000];
- _ADInfo = new String[4, 2, 2000];
- _Final = new String[4, 2, 2000];
- _sites = new String[4];
- _sites[0] = "1";
- _sites[1] = "2";
- _sites[2] = "3";
- _sites[3] = "4";
- _groups = new String[2];
- _groups[0] = "Wired";
- _groups[1] = "Wireless";
- getDataFromSCCM();
- getDataFromAD();
- DoCompare();
- foreach (string site in _sites)
- {
- lstSites.Items.Add(site.ToString());
- }
- }
- public void DoCompare()
- {
- int x = 0, y = 0, z = 0, i = 0;
- string temp = "";
- bool end = false;
- // Start with comparing SCCM to AD
- foreach (string site in _sites)
- {
- y = 0;
- foreach (string group in _groups)
- {
- z = 0;
- i = 0;
- end = false;
- do
- {
- if (_SCCMInfo[x, y, z] != null)
- {
- temp = _SCCMInfo[x, y, z];
- for (i = 0; i < 2000; i++)
- {
- if (_ADInfo[x, y, i] != null)
- {
- if (temp == _ADInfo[x, y, i])
- {
- //found
- i = 2000;
- _Final[x, y, z] = temp;
- }
- }
- else
- {
- i = 2000;
- //not found
- _Final[x, y, z] = "+" + temp;
- }
- }
- }
- else
- end = true;
- z++;
- } while (!end);
- y++;
- }
- x++;
- }
- // Now reverse the comparison, to find what is being removed:
- x = 0;
- y = 0;
- z = 0;
- i = 0;
- temp = "";
- end = false;
- foreach (string site in _sites)
- {
- y = 0;
- foreach (string group in _groups)
- {
- z = 0;
- i = 0;
- int z2 = 0;
- while (_Final[x, y, z2] != null)
- {
- z2++;
- }
- end = false;
- do
- {
- if (_ADInfo[x, y, z] != null)
- {
- temp = _ADInfo[x, y, z];
- for (i = 0; i < 2000; i++)
- {
- if (_SCCMInfo[x, y, i] != null)
- {
- if (temp == _SCCMInfo[x, y, i])
- {
- //found
- i = 2000;
- for (int f = 0; f < 2000; f++)
- {
- if (_Final[x, y, f] == temp)
- {
- //already been found, don't add
- f = 1999;
- }
- if (_Final[x, y, f] == null && f != 1999)
- {
- //not added previously, add now
- _Final[x, y, z2] = temp;
- f = 2000;
- }
- }
- }
- }
- else
- {
- i = 2000;
- //not found
- _Final[x, y, z2] = "-" + temp;
- }
- }
- }
- else
- end = true;
- z++;
- z2++;
- } while (!end);
- y++;
- }
- x++;
- }
- }
- public void newListBox(string name)
- {
- listBoxes.Add(new ListBox());
- ((ListBox)listBoxes[listBoxes.Count]).Name = name;
- }
- public void getDataFromSCCM()
- {
- //_SCCMInfo = null;
- _SCCMInfo[0, 0, 0] = "JCPSite01Wired01";
- _SCCMInfo[0, 0, 1] = "JCPSite01Wired02";
- _SCCMInfo[0, 0, 2] = "JCPSite01Wired03";
- _SCCMInfo[1, 0, 0] = "JCPSite02Wired01";
- _SCCMInfo[1, 0, 1] = "JCPSite02Wired02";
- _SCCMInfo[1, 0, 2] = "JCPSite02Wired03";
- _SCCMInfo[2, 0, 0] = "JCPSite03Wired01";
- _SCCMInfo[2, 0, 1] = "JCPSite03Wired02";
- _SCCMInfo[2, 0, 2] = "JCPSite03Wired03";
- _SCCMInfo[3, 0, 0] = "JCPSite04Wired01";
- _SCCMInfo[3, 0, 1] = "JCPSite04Wired02";
- _SCCMInfo[3, 0, 2] = "JCPSite04Wired03";
- _SCCMInfo[0, 1, 0] = "JCPSite01Wireless01";
- _SCCMInfo[0, 1, 1] = "JCPSite01Wireless02";
- _SCCMInfo[0, 1, 2] = "JCPSite01Wireless03";
- _SCCMInfo[1, 1, 0] = "JCPSite02Wireless01";
- _SCCMInfo[1, 1, 1] = "JCPSite02Wireless02";
- _SCCMInfo[1, 1, 2] = "JCPSite02Wireless03";
- _SCCMInfo[2, 1, 0] = "JCPSite03Wireless01";
- _SCCMInfo[2, 1, 1] = "JCPSite03Wireless02";
- _SCCMInfo[2, 1, 2] = "JCPSite03Wireless03";
- _SCCMInfo[3, 1, 0] = "JCPSite04Wireless01";
- _SCCMInfo[3, 1, 1] = "JCPSite04Wireless02";
- _SCCMInfo[3, 1, 2] = "JCPSite04Wireless03";
- }
- public void getDataFromAD()
- {
- //_ADInfo = null;
- int x = 0, y = 0, z = 0;
- foreach (string site in _sites)
- {
- y = 0;
- foreach (string group in _groups)
- {
- z = 0;
- ArrayList members = GetUsersInGroup(group + " Test Site " + site);
- foreach (string member in members)
- {
- _ADInfo[x, y, z] = member;
- z++;
- }
- y++;
- }
- x++;
- }
- }
- private void createTextBox(ArrayList list, String name)
- {
- int i = list.Count;
- list.Add( new TextBox() );
- ((TextBox)list[i]).Name = name;
- ((TextBox)list[i]).Text = String.Empty;
- }
- public void AddToGroup(string userDn, string groupDn)
- {
- try
- {
- DirectoryEntry dirEntry = new DirectoryEntry("LDAP://" + groupDn);
- dirEntry.Properties["member"].Add(userDn);
- dirEntry.CommitChanges();
- dirEntry.Close();
- }
- catch (System.DirectoryServices.DirectoryServicesCOMException e)
- {
- MessageBox.Show(e.Message);
- }
- }
- public void RemoveFromGroup(string userDn, string groupDn)
- {
- try
- {
- DirectoryEntry dirEntry = new DirectoryEntry("LDAP://" + groupDn);
- dirEntry.Properties["member"].Remove(userDn);
- dirEntry.CommitChanges();
- dirEntry.Close();
- }
- catch (System.DirectoryServices.DirectoryServicesCOMException e)
- {
- MessageBox.Show(e.Message);
- }
- }
- public ArrayList GetUsersInGroup(string myGroup)
- {
- ArrayList memberList = new ArrayList();
- var myDomain = new PrincipalContext(ContextType.Domain, "txhealth.org", "OU=THR Users,DC=txhealth,DC=org");
- var group = GroupPrincipal.FindByIdentity(myDomain, myGroup);
- if (group != null)
- {
- var members = group.GetMembers();
- foreach (var member in members)
- {
- memberList.Add(member.ToString());
- }
- }
- else
- {
- MessageBox.Show(@"Could not find group " + myGroup + ". Try again.", @"Error");
- return null;
- }
- return memberList;
- }
- private void lstSites_SelectedIndexChanged(object sender, EventArgs e)
- {
- lstGroups.Items.Clear();
- lstUsers.Items.Clear();
- foreach (string group in _groups)
- {
- lstGroups.Items.Add(group);
- }
- }
- private void lstGroups_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (lstSites.FocusedItem == null)
- return;
- if (lstGroups.FocusedItem == null)
- return;
- lstUsers.Items.Clear();
- //string group = lstGroups.SelectedItem.ToString();
- //ArrayList members = GetUsersInGroup(group + " Test Site " + lstSites.SelectedItem.ToString());
- //if (members != null)
- //{
- // foreach (string user in members)
- // {
- // lstUsers.Items.Add(user);
- // }
- //}
- int x =0;
- while (_Final[lstSites.FocusedItem.Index, lstGroups.FocusedItem.Index, x] != null)
- {
- x++;
- }
- for (int i = 0; i < x; i++)
- {
- string temp = _Final[lstSites.FocusedItem.Index, lstGroups.FocusedItem.Index, i];
- if (temp.Contains("+"))
- {
- lstUsers.Items.Add(temp.Substring(1));
- lstUsers.Items[i].BackColor = Color.Green;
- }
- else if (temp.Contains("-"))
- {
- lstUsers.Items.Add(temp.Substring(1));
- lstUsers.Items[i].BackColor = Color.Red;
- }
- else
- lstUsers.Items.Add(temp);
- }
- }
- private void btnCancel_Click(object sender, EventArgs e)
- {
- this.Close();
- }
- private void btnCleanup_Click(object sender, EventArgs e)
- {
- /// DO NOTHING RIGHT NOW
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement