public async Task <(string rpta, List <object> objects)> Login(string usuario, string pass, string fecha) { string rpta = "OK"; List <object> objects = new List <object>(); Empleado empleado = new Empleado(); Turno turno = new Turno(); DataSet ds = new DataSet("Login"); SqlConnection SqlCon = new SqlConnection(); SqlCon.InfoMessage += new SqlInfoMessageEventHandler(SqlCon_InfoMessage); SqlCon.FireInfoMessageEventOnUserErrors = true; try { StringBuilder consulta = new StringBuilder(); SqlCommand Sqlcmd; SqlCon.ConnectionString = Conexion.Cn; await SqlCon.OpenAsync(); Sqlcmd = new SqlCommand { Connection = SqlCon, CommandText = "sp_Login", CommandType = CommandType.StoredProcedure }; SqlParameter Usuario = new SqlParameter { ParameterName = "@Usuario", SqlDbType = SqlDbType.VarChar, Size = 50, Value = usuario.Trim() }; Sqlcmd.Parameters.Add(Usuario); SqlParameter Pass = new SqlParameter { ParameterName = "@Pass", SqlDbType = SqlDbType.VarChar, Size = 50, Value = pass.Trim() }; Sqlcmd.Parameters.Add(Pass); SqlParameter Fecha = new SqlParameter { ParameterName = "@Fecha", SqlDbType = SqlDbType.VarChar, Size = 50, Value = fecha.Trim() }; Sqlcmd.Parameters.Add(Fecha); SqlDataAdapter SqlData = new SqlDataAdapter(Sqlcmd); await Task.Run(() => SqlData.Fill(ds)); bool result = false; string tipo_usuario = ""; //1->Primer tabla es la respuesta DataTable dtRespuesta = ds.Tables[0]; if (dtRespuesta.Rows.Count > 0) { //Comprobar respuesta string respuestaSQL = Convert.ToString(dtRespuesta.Rows[0]["Respuesta"]); if (respuestaSQL.Equals("OK")) { tipo_usuario = Convert.ToString(dtRespuesta.Rows[0]["Tipo_usuario"]); result = true; } else { throw new Exception(respuestaSQL); } } else { throw new Exception("No se encontró la respuesta del procedimiento"); } if (result) { if (tipo_usuario.Equals("CAJERO")) { if (ds.Tables.Count >= 3) { DataTable dtEmpleado = ds.Tables[1]; //Obtener la credencial if (dtEmpleado.Rows.Count > 0) { empleado = new Empleado(dtEmpleado.Rows[0]); } else { throw new Exception("No se encontraron las credenciales"); } DataTable dtTurno = ds.Tables[2]; //Obtener el último turno if (dtTurno.Rows.Count > 0) { turno = new Turno(dtTurno.Rows[0]); } else { throw new Exception("No se encontró el turno"); } objects.Add(empleado); objects.Add(turno); } else { throw new Exception("Las tablas del procedimiento Login no vienen completas, son 3 y vienen: " + ds.Tables.Count); } } else if (tipo_usuario.Equals("ADMINISTRADOR")) { } } else { throw new Exception("No se pudo iniciar sesión"); } } catch (SqlException ex) { rpta = ex.Message; } catch (Exception ex) { rpta = ex.Message; } finally { if (SqlCon.State == ConnectionState.Open) { SqlCon.Close(); } } return(rpta, objects); }
public void Ingresar(Turno u) { BD.TurnoSet.Add(u); BD.SaveChanges(); }