示例#1
0
        /// <summary>
        /// created a new user in compass and assigns the same security as another user with the same title
        /// </summary>
        public void CreateCompassSecurity()
        {
            IntPtr admin_token = default(IntPtr);
            WindowsIdentity wid_current = WindowsIdentity.GetCurrent();
            WindowsIdentity wid_admin = null;
            WindowsImpersonationContext wic = null;
            _StaffID = "";
            _Pin = "";
            if (LogonUser(Form1._AdminUser, Form1._Domain, Form1._Password, 9, 0, ref admin_token) != 0)
            {
                wid_admin = new WindowsIdentity(admin_token);
                wic = wid_admin.Impersonate();

                while (_StaffID == "")
                {
                    //_NewStaffID = _NewStaffID - 1;
                    //GetRandomNumber(1);
                    MissingNumber();
                }

                GetRandomNumber(2);

                int cbIndex = Form1.myForm.cbNewJobTitle.SelectedIndex;
                string userJobTitle = Form1.myForm.cbNewJobTitle.Items[cbIndex].ToString();
                _JobTitle = userJobTitle;

                cbIndex = Form1.myForm.cbNewOfficeLocation.SelectedIndex;
                string userLocation = Form1.myForm.cbNewOfficeLocation.Items[cbIndex].ToString();
                _Location = userLocation;

                cbIndex = Form1.myForm.cbNewResourceRole.SelectedIndex;
                string userResourceRole = Form1.myForm.cbNewResourceRole.Items[cbIndex].ToString();
                _ReportsToEmail = Form1.myForm.lvReportsTo.SelectedItems[0].SubItems[2].Text;

                string theSQL = "insert into staff_info(staff_id,first_name,middle_name,last_name,job_code,phone_extension,phone_1,email_address,pin_number,begin_date,full_part_time,mask_from_list,office_location,fax_number,staff_department_id,direct_business_phone,IsActive,ResourceRoll,ActiveDirectoryUsername,ReportsTo)";
                theSQL += "values ('" + _StaffID + "',@FirstName,@MiddleName,@LastName,@JobCode,@PhoneExtension,@Phone1,@EmailAddress,'" + _Pin + "','" + Form1.myForm.dpNewStartDate.Value.ToShortDateString() + "',1,0,@Location,@FaxNumber," + GetDepartmentID().ToString() +",@DirectPhone,1,'" + userResourceRole + "','" + Form1.myForm.tbNewADAccountID.Text + "','" + Form1.myForm.lvReportsTo.SelectedItems[0].SubItems[1].Text + "')";

                _Con = new SqlConnection(_MasterSqlString.Replace("\\", @"\"));
                _Con.Open();

                string securityToBeAdded = "";
                try
                {
                    using (SqlCommand sqlCom = new SqlCommand(theSQL, _Con))
                    {
                        sqlCom.Parameters.Add(new SqlParameter("FirstName", Form1.myForm.tbNewFirstName.Text));
                        sqlCom.Parameters.Add(new SqlParameter("MiddleName", Form1.myForm.tbNewMiddleInit.Text));
                        sqlCom.Parameters.Add(new SqlParameter("LastName", Form1.myForm.tbNewLastName.Text));
                        sqlCom.Parameters.Add(new SqlParameter("JobCode", userJobTitle));
                        sqlCom.Parameters.Add(new SqlParameter("PhoneExtension", Form1.myForm.tbNewPhoneExtension.Text));
                        sqlCom.Parameters.Add(new SqlParameter("Phone1", Form1.myForm.tbNewPhone.Text));
                        sqlCom.Parameters.Add(new SqlParameter("EmailAddress", Form1.myForm.tbNewEmail.Text));
                        sqlCom.Parameters.Add(new SqlParameter("Location", userLocation));
                        sqlCom.Parameters.Add(new SqlParameter("FaxNumber", Form1.myForm.tbNewFaxNumber.Text));
                        sqlCom.Parameters.Add(new SqlParameter("DirectPhone", Form1.myForm.tbNewPhone.Text));

                        Form1.myForm._Notes.AppendLine();
                        Form1.myForm._Notes.Append("<br><b>Compass User Created:</b><br>");

                        sqlCom.ExecuteNonQuery();
                    }

                    foreach (object itemName in GetCompassGroups(userJobTitle))
                    {
                        securityToBeAdded = itemName.ToString();
                        _Con = new SqlConnection(_MasterSqlString.Replace("\\", @"\"));
                        _Con.Open();
                        using (SqlCommand sqlCom2 = new SqlCommand("insert into letmein_user_groups(user_id,letmein_group_id) values ('" + _StaffID + "','" + itemName.ToString() + "')", _Con))
                        {
                            SqlDataReader reader = sqlCom2.ExecuteReader();
                            Form1.myForm._Notes.AppendLine();
                            Form1.myForm._Notes.Append(itemName.ToString() + " group added to Compass Security<br>");
                            reader.Dispose();
                        }
                        _Con.Dispose();
                    }

                    _Con.Dispose();

                    Form1.myForm._Notes.AppendLine();
                    Form1.myForm._Notes.Append("<br>Compass Security created.<br>");
                    Form1.myForm._Notes.Append("StaffID = " + _StaffID + " and PIN = " + _Pin + ". <br>");
                    Form1.myForm.cbNewCompassCreated.Checked = true;
                    Form1.myForm.lblCompassPin.Text = "Compass Pin: " + _Pin;
                    Form1.myForm.lblStaffId.Text = "StaffID: " + _StaffID;

                    if (userJobTitle.Contains("Academic Advisor") || userJobTitle.Contains("Enrollment Advisor"))
                    {
                        _Con = new SqlConnection(_UATSqlString.Replace("\\", @"\"));
                        _Con.Open();

                            using (SqlCommand sqlCom = new SqlCommand(theSQL, _Con))
                            {
                                sqlCom.Parameters.Add(new SqlParameter("FirstName", Form1.myForm.tbNewFirstName.Text));
                                sqlCom.Parameters.Add(new SqlParameter("MiddleName", Form1.myForm.tbNewMiddleInit.Text));
                                sqlCom.Parameters.Add(new SqlParameter("LastName", Form1.myForm.tbNewLastName.Text));
                                sqlCom.Parameters.Add(new SqlParameter("JobCode", userJobTitle));
                                sqlCom.Parameters.Add(new SqlParameter("PhoneExtension", Form1.myForm.tbNewPhoneExtension.Text));
                                sqlCom.Parameters.Add(new SqlParameter("Phone1", Form1.myForm.tbNewPhone.Text));
                                sqlCom.Parameters.Add(new SqlParameter("EmailAddress", Form1.myForm.tbNewEmail.Text));
                                sqlCom.Parameters.Add(new SqlParameter("Location", userLocation));
                                sqlCom.Parameters.Add(new SqlParameter("FaxNumber", Form1.myForm.tbNewFaxNumber.Text));
                                sqlCom.Parameters.Add(new SqlParameter("DirectPhone", Form1.myForm.tbNewPhone.Text));

                                Form1.myForm._Notes.AppendLine();
                                Form1.myForm._Notes.Append("<br><b>UAT Compass User Created:</b><br>");

                                sqlCom.ExecuteNonQuery();
                            }

                            foreach (object itemName in GetCompassGroups(userJobTitle))
                            {
                                securityToBeAdded = itemName.ToString();
                                _Con = new SqlConnection(_UATSqlString.Replace("\\", @"\"));
                                _Con.Open();
                                using (SqlCommand sqlCom2 = new SqlCommand("insert into letmein_user_groups(user_id,letmein_group_id) values ('" + _StaffID + "','" + itemName.ToString() + "')", _Con))
                                {
                                    SqlDataReader reader = sqlCom2.ExecuteReader();
                                    Form1.myForm._Notes.AppendLine();
                                    Form1.myForm._Notes.Append(itemName.ToString() + " group added to UAT Compass Security<br>");
                                    reader.Dispose();
                                }
                                _Con.Dispose();
                            }

                            _Con.Dispose();

                            Form1.myForm._Notes.AppendLine();
                            Form1.myForm._Notes.Append("<br>UAT Compass Security created.<br>");
                            Form1.myForm._Notes.Append("StaffID = " + _StaffID + " and PIN = " + _Pin + ". <br>");
                        }

                    RR myRR = new RR();
                    myRR.CreateRRSecurity(_StaffID);

                    Form1.myForm._Notes.AppendLine();
                    Form1.myForm._Notes.Append("<br><b>Summary</b><br>");
                    Form1.myForm._Notes.Append("Job Title: " + userJobTitle + "<br>");
                    Form1.myForm._Notes.Append("Resource Role: " + userResourceRole + "<br>");
                    cbIndex = Form1.myForm.cbRRSecurityGroup.SelectedIndex;
                    Form1.myForm._Notes.Append("Roadrunner Security Group: " + Form1.myForm.cbRRSecurityGroup.Items[cbIndex].ToString() + "<br>");
                    Form1.myForm._Notes.Append("Office Location: " + userLocation + "<br>");
                    Form1.myForm._Notes.Append("Virtual: " + Form1.myForm.cbNewVirtual.Checked.ToString() + "<br>");
                    Form1.myForm._Notes.Append("Reports To: " + Form1.myForm.lvReportsTo.SelectedItems[0].SubItems[0].Text + "<br>");
                }
                catch (Exception ex)
                {
                    Form1.myForm.cbNewCompassCreated.Checked = false;
                    Form1.myForm._Notes.AppendLine();
                    Form1.myForm._Notes.Append("<br><b>Error in Compass/Roadrunner Security creation process.</b><br>" + ex.Message + "<br>" + securityToBeAdded + "<br>");
                }
                finally
                {
                    _StaffID = "";
                }
            }
        }