示例#1
0
        public ResponseBD login_Usuario(Select.Login l)
        {
            try
            {
                ResponseBD response = new ResponseBD();

                string ConnString = ConfigurationManager.ConnectionStrings["barabaresConnectionString"].ConnectionString;
                using (SqlConnection SqlConn = new SqlConnection(ConnString))
                {
                    try
                    {
                        SqlConn.Open();
                    }
                    catch (Exception ex)
                    {
                        Debug.WriteLine(ex.ToString());
                        response.Flujo = Constantes.FALLA;
                        response.Mensaje = "Error al abrir la conexión a BD";
                        return response;
                    }

                    SqlCommand sqlCmd = new SqlCommand("USUARIO_LOGIN", SqlConn);
                    sqlCmd.CommandType = CommandType.StoredProcedure;

                    SqlParameter flujo = new SqlParameter("@opsFlujo", SqlDbType.VarChar)
                    {
                        Direction = ParameterDirection.Output,
                        Size = 10

                    };

                    SqlParameter mensaje = new SqlParameter("@opsMsj", SqlDbType.VarChar)
                    {
                        Direction = ParameterDirection.Output,
                        Size = 100
                    };

                    SqlParameter nombreUsuario = new SqlParameter("@opsNombreUsuario", SqlDbType.VarChar)
                    {
                        Direction = ParameterDirection.Output,
                        Size = 100
                    };

                    SqlParameter idUsuario = new SqlParameter("@opnIdUsuario", SqlDbType.VarChar)
                    {
                        Direction = ParameterDirection.Output,
                        Size = 100
                    };

                    SqlParameter token = new SqlParameter("@opsToken", SqlDbType.VarBinary)
                    {
                        Direction = ParameterDirection.Output,
                        Size = 8000
                    };

                    sqlCmd.Parameters.Add("@ipsUsuario", SqlDbType.VarChar).Value = l.usuario;
                    sqlCmd.Parameters.Add("@ipsContrasena", SqlDbType.VarChar).Value = l.contrasena;
                    sqlCmd.Parameters.Add(flujo);
                    sqlCmd.Parameters.Add(mensaje);
                    sqlCmd.Parameters.Add(token);
                    sqlCmd.Parameters.Add(nombreUsuario);
                    sqlCmd.Parameters.Add(idUsuario);

                    sqlCmd.ExecuteNonQuery();

                    response.Flujo = flujo.Value.ToString();
                    response.Mensaje = mensaje.Value.ToString();

                    //Procesar Usuario

                    //nombreUsuario.ToString()
                    //Int32.Parse(idUsuario.ToString())

                    SqlConn.Close();

                    if (flujo.Value.ToString().Equals(Constantes.OK))
                    {
                        string token_bd = "";
                        foreach (Byte b in (Byte[])token.Value)
                        {
                            token_bd = token_bd + b.ToString();
                        }
                        response.Mensaje = BBSessionManager.Instance.addNewSession(Int32.Parse(idUsuario.Value.ToString()), nombreUsuario.Value.ToString(), token_bd, 0);
                        Debug.WriteLine(response.Mensaje, "Mensaje");
                        Debug.WriteLine(token_bd, "Token");
                    }
                }

                return response;
            }
            catch (Exception ex)
            {
                LogBarabares b = new LogBarabares()
                {
                    Accion = Constantes.LOG_LOGIN,
                    Servicio = Constantes.Login_Usuario,
                    Input = JsonSerializer.login_Usuario(l.usuario, l.contrasena),
                    Descripcion = ex.ToString(),
                    Clase = (l == null) ? "null" : l.GetType().Name,
                    Aplicacion = Constantes.ENTORNO_SERVICIOS,
                    Estado = Constantes.FALLA,
                    Ip = "",
                    IdUsuario = 1 //TODO: obtener usuario de la sesión

                };

                Utils.add_LogBarabares(b);

                ResponseBD response = new ResponseBD();
                response.Flujo = Constantes.FALLA;
                response.Mensaje = "Error al abrir la conexión a BD";
                return response;
            }
        }