public void Link(UserEntity userEntity, int RoleId, string mail) { using (SqlConnection connection = DALHelper.CreateSqlDbConnection()) { // Start a local transaction. SqlTransaction sqlTran = connection.BeginTransaction(); // Enlist a command in the current transaction. try { SqlCommand command = connection.CreateCommand(); command.Transaction = sqlTran; new UserMapper().Insert(userEntity, command); command = connection.CreateCommand(); command.Transaction = sqlTran; new RoleMapper().InsertUserForRole(userEntity, new RoleEntity() { Id = RoleId }, command); command = connection.CreateCommand(); command.Transaction = sqlTran; new EmployeeMapper().UpdateJobInformation(userEntity.EmployeeId, mail, "", null, command); // Commit the transaction. sqlTran.Commit(); } catch (Exception) { // Handle the exception if the transaction fails to commit. try { // Attempt to roll back the transaction. sqlTran.Rollback(); } catch (Exception) { // Throws an InvalidOperationException if the connection // is closed or the transaction has already been rolled // back on the server. } } } }
protected void ProceedButton_Click(object sender, EventArgs e) { PrincipalContext ctx = new PrincipalContext(ContextType.Domain); UserPrincipal user = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, userTextBox.Text); if (user != null) { int appId = Convert.ToInt32(ConfigurationManager.AppSettings["ApplicationId"]); int empId = Convert.ToInt32(Request.QueryString["EmployeeId"]); UserEntity userEntity = new UserEntity(); userEntity.ApplicationId = appId; userEntity.EmployeeId = empId; userEntity.Username = userTextBox.Text; userEntity.Status = StatusEnum.Active; userEntity.Password = ""; new LinkEmployeeToUserBO().Link(userEntity, Convert.ToInt32(RoleDropDownList.SelectedValue), user.UserPrincipalName); #warning set this to a good mail message string[] to = { EmailAddressTextBox.Text }; SendMail.Send(to, "Hi", ("HR Test from system. You have been granted acess to the HR system." + userEntity.EmployeeId)); Response.Redirect("List.aspx"); } }