Estructura y Codigo Web Services

19
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES TEMA: SISTEMA BIBLIOTECARIO PARA PRESTAMO, RESERVACION Y CONSULTA DE LIBROS (WEB SERVICES) ASIGNATURA: SISTEMAS OPERATIVOS DISTRIBUIDOS INTEGRANTES: MARIA VICTORIA LAZO CHIRIGUAYO OSCAR RENE ORTIZ SALTOS PROFESOR: ING. JAVIER GONZALEZ PARALELO: S7K

description

Trabajo de SOD.

Transcript of Estructura y Codigo Web Services

Page 1: Estructura y Codigo Web Services

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS

CARRERA DE INGENIERIA EN SISTEMAS COMPUTACIONALES

TEMA:

SISTEMA BIBLIOTECARIO PARA PRESTAMO, RESERVACION Y CONSULTA DE LIBROS

(WEB SERVICES)

ASIGNATURA:

SISTEMAS OPERATIVOS DISTRIBUIDOS

INTEGRANTES:

MARIA VICTORIA LAZO CHIRIGUAYO

OSCAR RENE ORTIZ SALTOS

PROFESOR:

ING. JAVIER GONZALEZ

PARALELO:

S7K

CICLO I – 2014

Page 2: Estructura y Codigo Web Services

El trabajo que planteamos hacer fue crear una plataforma en linea por el cual por medio de Servicios Web consulte a una base de datos los libros que se encuentran disponibles y los que se podrían reservar o prestar en una biblioteca.

El esquema propuesto fue el siguiente:

El objetivo principal es que al momento de ir presencialmente al establecimiento de préstamo del libro evitar recibir por parte de el/la bibliotecario/a la noticia de que el libro no se encuentra disponible.

Y en el caso que si se encuentre el libro y nos ubiquemos en un lugar lejano al del préstamo, poder realizar la reservación y así pasar luego a retirarlo.

La persona para poder acceder a este servicio deberá poseer un usuario y contraseña, al ingresar al portal la primera pantalla que vera será esta:

Page 3: Estructura y Codigo Web Services

Es en la cual podrá ingresar su autenticación, ya que sin ella no podrá acceder a ningún servicio.Para saber que su usuario y contraseña fueron aceptados en el lugar donde se encontraba el login aparecerán los nombres y id del usuario asi como muestra la siguiente pantalla.

El menú que se encuentra en la parte superior permitirá hacer el uso de los siguientes servicios que se encuentran listados a continuación:

Page 4: Estructura y Codigo Web Services

Todos estos son métodos de un Web Service que permitirán consultar, insertar, eliminar y actualizar registros de una base de datos.

Las interfaces que permiten la comunicación Cliente-Aplicativo-Base de datos son:

A continuación se encuentra el Código Fuente del servicio:

ServicioWeb.asmxusing System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data;using System.Web.Services;using ServicioBiblioteca.Clases;using ServicioBiblioteca.Entidades;

namespace ServicioBiblioteca{ /// <summary> /// Descripción breve de Service1

Page 5: Estructura y Codigo Web Services

/// </summary> [WebService(Namespace = "http://localhost/",Name="OROMAR",Description="Proyecto de SOD S7K 2014")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // Para permitir que se llame a este servicio Web desde un script, usando ASP.NET AJAX, quite la marca de comentario de la línea siguiente. // [System.Web.Script.Services.ScriptService] public class ServicioWeb : System.Web.Services.WebService { /*TRANSACCIONES LIBROS*/ [WebMethod] public DataTable ConsultaBaseLibros() { string error; DataTable dtable=null; try { LibrosDAO lDao = new LibrosDAO(); dtable = lDao.ConsultaBaseLibros(); } catch (Exception ex) { error = ex.Message; } return dtable; }

[WebMethod] public DataTable ConsultaLibro(string id_libro) { string error; DataTable dtable = null; try {

LibrosDAO ldao = new LibrosDAO(); dtable = ldao.ConsultaLibro(id_libro);

} catch (Exception ex) { error = ex.Message; }

return dtable; }

[WebMethod] public int IngresaLibro(string titulo,string autor, string editorial, int edicion) { LibrosDAO lDao = new LibrosDAO(); EntidadLibros eL = new EntidadLibros(titulo, autor, editorial, edicion); int d = lDao.IngresaLibro(eL); return d; }

[WebMethod] public int EliminaLibro(string id_libro) { LibrosDAO ldao = new LibrosDAO(); int d = ldao.EliminaLibro(id_libro); return d; }

Page 6: Estructura y Codigo Web Services

[WebMethod] public int ActualizaLibro(string id_libro,string titulo, string autor, string editorial, int edicion) { LibrosDAO lDao = new LibrosDAO(); EntidadLibros eL = new EntidadLibros(id_libro,titulo, autor, editorial, edicion); int d = lDao.ActualizaLibro(eL); return d; }

/*TRANSACCIONES USUARIOS*/ [WebMethod] public DataTable ConsultaBaseUsuarios() { string error; DataTable dtable = null; try {

UsuariosDAO uDao = new UsuariosDAO(); dtable = uDao.ConsultaBaseUsuarios();

} catch (Exception ex) { error = ex.Message; }

return dtable; }

[WebMethod] public DataTable ConsultaUsuario(string id_usuario) { string error; DataTable dtable = null; try {

UsuariosDAO uDao = new UsuariosDAO(); dtable = uDao.ConsultaUsuario(id_usuario);

} catch (Exception ex) { error = ex.Message; }

return dtable; }

[WebMethod] public int IngresaUsuario(string id_usuario,string nombre, string apellido, string ciudad, string fechaNacim) { UsuariosDAO uDao = new UsuariosDAO(); EntidadUsuarios eU = new EntidadUsuarios(id_usuario,nombre, apellido, ciudad, DateTime.Parse(fechaNacim)); int d = uDao.IngresaUsuario(eU); return d; }

[WebMethod] public int EliminaUsuario(string id_usuario) { UsuariosDAO uDao = new UsuariosDAO(); int d = uDao.EliminaUsuario(id_usuario);

Page 7: Estructura y Codigo Web Services

return d; }

[WebMethod] public int ActualizaUsuario(string id_usuario, string nombre, string apellido, string ciudad, string fechaNacim) { UsuariosDAO uDao = new UsuariosDAO(); EntidadUsuarios eU = new EntidadUsuarios(id_usuario, nombre, apellido, ciudad, DateTime.Parse(fechaNacim)); int d = uDao.ActualizaUsuario(eU); return d; }

[WebMethod] public DataTable ConsultaTransaccionLibros() { TransaccionesLibrosDAO uDao = new TransaccionesLibrosDAO(); DataTable dtable = new DataTable(); dtable = uDao.ConsultaTransaccionLibros(); return dtable; } [WebMethod] public int ReservaLibros(string id_libro,string id_usuario) { TransaccionesLibrosDAO uDao = new TransaccionesLibrosDAO(); return uDao.ReservaLibros(id_libro, id_usuario); } }}

ConexionBase.csusing System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data.SqlClient;using System.Configuration;

namespace ServicioBiblioteca.Conexion{ public class ConexionBase { public SqlConnection conectar() { SqlConnection conexion= new SqlConnection(ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString); return conexion; } }}

LibrosDAO.csusing System;

Page 8: Estructura y Codigo Web Services

using System.Collections.Generic;using System.Linq;using System.Web;using System.Data.SqlClient;using ServicioBiblioteca.Conexion;using ServicioBiblioteca.Entidades;using System.Data;

namespace ServicioBiblioteca.Clases{ public class LibrosDAO { ConexionBase cb = new ConexionBase(); public DataTable ConsultaBaseLibros() { SqlConnection con = cb.conectar(); DataTable dtable= new DataTable(); SqlDataReader reader; SqlCommand command = new SqlCommand("ConsultaLibros", con); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add("@pv_error", SqlDbType.VarChar,100).Direction = ParameterDirection.Output; con.Open(); reader = command.ExecuteReader(); dtable.TableName = "Libros"; dtable.Load(reader); con.Close(); return dtable; }

public DataTable ConsultaLibro(string id_libro) {

SqlConnection con = cb.conectar(); DataTable dtable = new DataTable(); SqlDataReader reader; SqlCommand command = new SqlCommand("ConsultaLibro", con); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@pv_identificador", id_libro); command.Parameters.Add("@pv_error", SqlDbType.VarChar, 100).Direction = ParameterDirection.Output;

con.Open();

reader = command.ExecuteReader(); dtable.TableName = "Libros"; dtable.Load(reader);

con.Close(); return dtable; }

public int IngresaLibro(EntidadLibros eL) { int r; SqlConnection con = cb.conectar(); SqlCommand command = new SqlCommand("InsertaLibro", con);

Page 9: Estructura y Codigo Web Services

command.CommandType = CommandType.StoredProcedure; //command.Parameters.Add("@tramite", SqlDbType.VarChar, 100); command.Parameters.AddWithValue("@pv_titulo",eL.Titulo); command.Parameters.AddWithValue("@pv_autor", eL.Autor); command.Parameters.AddWithValue("@pv_editorial", eL.Editorial); command.Parameters.AddWithValue("@pn_edicion", eL.Edicion); command.Parameters.Add("@pv_error", SqlDbType.VarChar, 100).Direction = ParameterDirection.Output; con.Open(); r=command.ExecuteNonQuery();

con.Close(); return r; }

public int EliminaLibro(string id_libro) { int r; SqlConnection con = cb.conectar(); SqlCommand command = new SqlCommand("delete from Libros where id_libro= @id_libro", con); command.Parameters.AddWithValue("@id_libro",id_libro); command.Parameters.Add("@pv_error", SqlDbType.VarChar, 100).Direction = ParameterDirection.Output; con.Open(); r = command.ExecuteNonQuery(); con.Close(); return r; }

public int ActualizaLibro(EntidadLibros eL) { int r=0; try { SqlConnection con = cb.conectar(); SqlCommand command = new SqlCommand("ActualizaLibro", con); command.CommandType = CommandType.StoredProcedure; //command.Parameters.Add("@tramite", SqlDbType.VarChar, 100); command.Parameters.AddWithValue("@pv_titulo", eL.Titulo); command.Parameters.AddWithValue("@pv_autor", eL.Autor); command.Parameters.AddWithValue("@pv_editorial", eL.Editorial); command.Parameters.AddWithValue("@pn_edicion", eL.Edicion); command.Parameters.AddWithValue("@pv_identificador", eL.Id_libro); command.Parameters.Add("@pv_error", SqlDbType.VarChar, 100).Direction = ParameterDirection.Output; con.Open(); r = command.ExecuteNonQuery();

con.Close(); } catch (Exception e) { r = 0; } return r; } }

Page 10: Estructura y Codigo Web Services

}

TransaccionesLibrosDAO.csusing System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data;using System.Data.SqlClient;using ServicioBiblioteca.Conexion;using System.Collections;

namespace ServicioBiblioteca.Clases{ public class TransaccionesLibrosDAO { ConexionBase cb = new ConexionBase(); public DataTable PrestamoLibros(String libro) { SqlConnection con = cb.conectar(); DataTable dtable = new DataTable(); SqlDataReader reader; SqlCommand command = new SqlCommand("select * from cantidad_libros where id_libro=@libro", con); command.Parameters.AddWithValue("@libro", libro); con.Open(); reader = command.ExecuteReader(); dtable.TableName = "Bitacora"; dtable.Load(reader);

con.Close(); return dtable; }

public int ReservaLibros(string id_libro, string id_usuario) { SqlConnection con = cb.conectar(); SqlConnection con1 = cb.conectar(); SqlConnection con2 = cb.conectar(); SqlConnection con3 = cb.conectar(); DataTable dtable = new DataTable(); SqlDataReader reader,reader2,reader3; int num=0; int v=0, vl; SqlCommand command = new SqlCommand("select * from libros where id_libro=@libro", con); SqlCommand command1 = new SqlCommand("select * from usuarios where id_usuario=@usuario", con1); SqlCommand command3 = new SqlCommand("SELECT ISNULL(MAX(id_reserva)+1,0) FROM reserva_libros", con3); SqlCommand command2 = new SqlCommand("insert into reserva_libros (id_reserva,id_usuario,id_libro,fecha_reserva)"+ "values(@num,@libro,@usuario,getdate()); ", con2);

con3.Open(); reader3 = command3.ExecuteReader(); if (reader3.Read()) { v = reader3.GetInt32(0);

Page 11: Estructura y Codigo Web Services

} con3.Close(); command.Parameters.AddWithValue("@libro", id_libro); command1.Parameters.AddWithValue("@usuario", id_usuario); command2.Parameters.AddWithValue("@num", v); command2.Parameters.AddWithValue("@libro", id_libro); command2.Parameters.AddWithValue("@usuario", id_usuario); con.Open(); reader = command.ExecuteReader(); con1.Open(); reader2 = command1.ExecuteReader(); if (reader.HasRows && reader2.HasRows) { con2.Open(); num=command2.ExecuteNonQuery(); con2.Close(); } reader.Close(); reader2.Close(); con.Close(); con1.Close(); return num; }

public DataTable ConsultaTransaccionLibros() { SqlConnection con = cb.conectar(); DataTable dtable = new DataTable(); SqlDataReader reader; SqlCommand command = new SqlCommand("select * from bitacora_libros", con); con.Open(); reader = command.ExecuteReader();

dtable.TableName = "Bitacora"; dtable.Load(reader);

con.Close(); return dtable; } }}

using System;UsuariosDAO.cs

using System.Collections.Generic;using System.Linq;using System.Web;using System.Data.SqlClient;using ServicioBiblioteca.Conexion;using System.Data;using ServicioBiblioteca.Entidades;

namespace ServicioBiblioteca.Clases{

Page 12: Estructura y Codigo Web Services

public class UsuariosDAO { ConexionBase cb = new ConexionBase(); public DataTable ConsultaBaseUsuarios() {

SqlConnection con = cb.conectar(); DataTable dtable = new DataTable(); SqlDataReader reader; SqlCommand command = new SqlCommand("ConsultaUsuarios", con); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add("@pv_error", SqlDbType.VarChar, 100).Direction = ParameterDirection.Output;

con.Open();

reader = command.ExecuteReader(); dtable.TableName = "Usuarios"; dtable.Load(reader);

con.Close(); return dtable; }

public DataTable ConsultaUsuario(string id_usuario) { SqlConnection con = cb.conectar(); DataTable dtable = new DataTable(); try { SqlDataReader reader; SqlCommand command = new SqlCommand("ConsultaUsuario", con); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@pv_identificador", id_usuario); command.Parameters.Add("@pv_error", SqlDbType.VarChar, 100).Direction = ParameterDirection.Output;

con.Open();

reader = command.ExecuteReader(); dtable.TableName = "Usuario"; dtable.Load(reader); } catch (Exception e) { } finally { con.Close(); } return dtable; }

public int IngresaUsuario(EntidadUsuarios eU) { int r=0; SqlConnection con = cb.conectar(); try { SqlCommand command = new SqlCommand("InsertaUsuario", con); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@pv_identificador", eU.Id_usuario); command.Parameters.AddWithValue("@pv_nombre", eU.Nombre);

Page 13: Estructura y Codigo Web Services

command.Parameters.AddWithValue("@pv_apellido", eU.Apellido); command.Parameters.AddWithValue("@pv_ciudad", eU.Ciudad); command.Parameters.AddWithValue("@pd_fecha_nacim", eU.FechaNacim); command.Parameters.Add("@pv_error", SqlDbType.VarChar, 100).Direction = ParameterDirection.Output; con.Open(); r = command.ExecuteNonQuery();

} catch (Exception e) { r = 0; } finally { con.Close(); } return r; }

public int EliminaUsuario(string id_usuario) { int r=0; SqlConnection con = cb.conectar(); try { SqlCommand command = new SqlCommand("delete from Usuarios where id_usuario= @id_usuario", con); command.Parameters.AddWithValue("@id_usuario", id_usuario); command.Parameters.Add("@pv_error", SqlDbType.VarChar, 100).Direction = ParameterDirection.Output; con.Open(); r = command.ExecuteNonQuery(); } catch (Exception e) { r = 0; } finally { con.Close(); } return r; }

public int ActualizaUsuario(EntidadUsuarios eU) { int r = 0; try { SqlConnection con = cb.conectar(); SqlCommand command = new SqlCommand("ActualizaUsuario", con); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@pv_nombre", eU.Nombre); command.Parameters.AddWithValue("@pv_apellido", eU.Apellido); command.Parameters.AddWithValue("@pv_ciudad", eU.Ciudad); command.Parameters.AddWithValue("@pd_fecha_nacim", eU.FechaNacim); command.Parameters.AddWithValue("@pv_identificador", eU.Id_usuario); command.Parameters.Add("@pv_error", SqlDbType.VarChar, 100).Direction = ParameterDirection.Output; con.Open(); r = command.ExecuteNonQuery();

con.Close(); } catch (Exception e) { r = 0;

Page 14: Estructura y Codigo Web Services

} return r; } }}

Web.config<?xml version="1.0" encoding="utf-8"?><configuration> <connectionStrings> <add name="CadenaConexion" connectionString="workstation id=BibliotecaSOD.mssql.somee.com;packet size=4096;user id=myo;pwd=91979996;data source=BibliotecaSOD.mssql.somee.com;persist security info=False;initial catalog=BibliotecaSOD" /> </connectionStrings> <system.web> <compilation debug="true" > <assemblies> <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> </assemblies> </compilation> <authentication mode="Windows" /> <pages> <controls> <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </controls> </pages>

<httpHandlers> <remove verb="*" path="*.asmx"/> <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> </httpHandlers> <httpModules> <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

Page 15: Estructura y Codigo Web Services

</httpModules> </system.web> <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <providerOption name="CompilerVersion" value="v3.5"/> <providerOption name="WarnAsError" value="false"/> </compiler> </compilers> </system.codedom> <system.webServer> <validation validateIntegratedModeConfiguration="false"/> <modules> <remove name="ScriptModule" /> <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </modules> <handlers> <remove name="WebServiceHandlerFactory-Integrated"/> <remove name="ScriptHandlerFactory" /> <remove name="ScriptHandlerFactoryAppServices" /> <remove name="ScriptResource" /> <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> </handlers> </system.webServer> <runtime> <assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> </dependentAssembly> </assemblyBinding> </runtime>

</configuration>