private void guardarUsuario()
        {
            if (Validaciones.validarCampoAlfaNumerico(this.txtUsername)
                & Validaciones.validarCampoVacio(this.txtPassword)
                & Validaciones.validarCampoString(this.txtPregunta)
                & Validaciones.validarCampoString(this.txtRespuesta))
            {
                try
                {
                    validarUsernameUnico();

                    Usuario usr = new Usuario();
                    usr.Username = this.txtUsername.Text;
                    usr.Password = this.txtPassword.Text;
                    usr.PreguntaSecreta = this.txtPregunta.Text;
                    usr.RespuestaSecreta = this.txtRespuesta.Text;
                    usr.Roles = new List<Rol>();
                    foreach (var item in this.chkRoles.CheckedItems.Cast<Rol>().ToList())
                    {
                        usr.Roles.Add((Rol)item);
                    }

                    usr.Activo = true;
                    usr.Habilitado = true;

                    realizarTransaccion(usr, cliente);

                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

            }
        }
        /*************    Metodos privados       *************/
        private void realizarTransaccion(Usuario usr, Cliente cliente)
        {
            using (var transaction = new TransactionScope())
            {
                try
                {
                    if (usrService.insert(usr) > 0)
                        MessageBox.Show("Se ha creado correctamente el usuario", "Creacion usuario", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    else
                        throw new Exception("Error al crear usuario");

                    cliente.username = usr.Username;
                    usrService.insertRolesUsuario(usr);

                    if (cliService.createCliente(cliente) > 0)
                    {
                        this.Hide();
                        MessageBox.Show("Se ha creado correctamente el cliente", "Creacion cliente");
                        this.form.Hide();
                    }
                    else
                        throw new Exception("Error al crear usuario");

                    transaction.Complete();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {

                    transaction.Dispose();
                }
            }
        }
 public int insertRolesUsuario(Usuario usuario)
 {
     UsuarioRepository usrRep = new UsuarioRepository();
     return usrRep.InsertRolesUsuario(usuario);
 }