public AuthorizeLogOnDTO RetrieveUserInformation(string userName, string domainName = "") { var aDPath = ConfigurationManager.AppSettings["EmployeeADPath"]; var searchString = ConfigurationManager.AppSettings["EmployeeSearchString"]; AuthorizeLogOnDTO returnValue = null; var results = SearchForADUserInfo(string.Format(CultureInfo.CurrentCulture, searchString, userName), aDPath); if (results.Count > 0) { var result = results[0]; returnValue = new AuthorizeLogOnDTO(); returnValue.LastName = GetPropertyString(result, "sn"); returnValue.FirstName = GetPropertyString(result, "givenname"); returnValue.UserName = userName; returnValue.Location = GetPropertyString(result, "physicalDeliveryOfficeName"); returnValue.Department = GetPropertyString(result, "department"); returnValue.EmailAddress = GetPropertyString(result, "mail"); var managerDistinguishedName = GetPropertyString(result, "manager"); if (managerDistinguishedName != string.Empty) { var managerResults = SearchForADUserInfo(string.Format(CultureInfo.CurrentCulture, "(&(objectCategory=Person)(objectClass=user)(distinguishedname={0}))", managerDistinguishedName), aDPath); if (managerResults.Count > 0) { returnValue.Manager1ADName = GetPropertyString(managerResults[0], "samaccountname"); } } } return returnValue; }
public CustomIdentityDTO SaveIdentity(AuthorizeLogOnDTO customIdentity) { using (var ctx = new Entities()) { ctx.Database.Connection.Open(); var employee = ctx.Employees.SingleOrDefault(e => e.ADName == customIdentity.UserName); if (employee == null) { employee = new Employee(); LoadEmployee(employee, customIdentity); employee.AwardPayoutThreshold = EmployeeConstants.DefaultAwardPayoutThreshold; ctx.Employees.Add(employee); } else { LoadEmployee(employee, customIdentity); } ctx.SaveChanges(); AttachAndSavePermission(ctx, employee.EmployeeId, Common.Enums.PermissionType.User); return new CustomIdentityDTO { Id = employee.EmployeeId, ADName = employee.ADName }; } }
public void SaveManagerInfo(AuthorizeLogOnDTO customIdentity) { using (var ctx = new Entities()) { ctx.Database.Connection.Open(); var employee = ctx.Employees.SingleOrDefault(e => e.ADName == customIdentity.UserName); if (employee != null) { var manager1 = ctx.Employees.SingleOrDefault(e => e.ADName == customIdentity.Manager1ADName); if (manager1 != null) { employee.ApprovingManagerId1 = manager1.EmployeeId; } var manager2 = ctx.Employees.SingleOrDefault(e => e.ADName == customIdentity.Manager2ADName); if (manager2 != null) { employee.ApprovingManagerId2 = manager2.EmployeeId; } } ctx.SaveChanges(); } }
private void LoadEmployee(Employee employee, AuthorizeLogOnDTO customIdentity) { employee.ADName = customIdentity.UserName; employee.FirstName = customIdentity.FirstName; employee.LastName = customIdentity.LastName; employee.EmploymentStartDate = customIdentity.EmployementStartDate; employee.EmploymentEndDate = customIdentity.EmployementEndDate; }