miércoles, 18 de junio de 2014

Examen Modulo Desarrollo de aplicaciones web distribuidas con WebApi.

Examen Modulo Desarrollo de aplicaciones web distribuidas con WebApi.

 

1.       ¿Cuándo creamos un controlador Web Api de que clase heredamos?

a.       Controller

b.      ApiController

c.       WebApiControler

d.      RestApiControler

2.       De las siguientes url a un método web api, ¿Cuál es correcta?

a.       Api/CursosApi/GetCurso/1

b.      /Api/CursoApi/GetCurso/1

c.       /webapi/Curso/getcurso

d.      Api/apicurso

3.       ¿Qué significa JSON?

a.       JavaScript Object Notation

b.      java serialized object national

c.       join script organization normals

d.      john scott overnt nac

4.       ¿Qué protocolo se usa para acceder a un web api?

a.       Xml

b.      Tcpip

c.       Net

d.      http

5.       ¿Qué atributos podemos poner por delante de los métodos del controlador de web api?

a.       Httpget

b.      Httppost

c.       ActionName

d.      Todos

6.       ¿Qué complemento de NuGet incluimos para poder usar el método $.ajax?

a.       Ajax for net

b.      Json

c.       Jquery

d.      Jquery-ui

7.       ¿A qué parámetro del método $.ajax le damos el valor ‘POST’?

a.       dataType

b.      url

c.       type

d.      submitType

8.       Cuándo queremos realizar una petición POST a un método del web api, ¿Cómo pasamos la información que enviamos al web api en la función $.ajax?

a.       Usando el parámetro content.

b.      Usando el parámetro data.

c.       Usando la función success.

d.      La función $.ajax no soporta esa funcionalidad.

9.       ¿Cuál de las siguientes crea un objeto Json en javascript?

a.        var curso = {cursoid 1, nombre 'EXCEL'};

b.      var curso = {cursoid: 1, nombre: 'EXCEL'};

c.       var curso = { 1, 'EXCEL'};

d.      var curso = {cursoid: 1; nombre; 'EXCEL'};

10.   Si tenemos un método del web api que tiene que retornar un conjunto de Clientes, ¿Cómo declaramos el método?

a.       public Enumerable<Cliente> GetClientes()

b.      public Collections<Cliente> GetClientes()

c.       public Cliente GetClientes()

d.      public IEnumerable<Cliente> GetClientes()

11.   ¿Y si el método tiene que guardar los datos de un cliente?

a.       public void PostCliente()

b.      private void PostCliente(Cliente c)

c.       public Cliente PostCliente(c)

d.      public Cliente PostCliente()

e.      public void PostCliente(Cliente c)

12.   ¿Cuál es la forma correcta de usar la función ready de jquery?

a.       $().ready(function () {  codigo });

b.      $(document).ready(function () {  codigo });

c.       $().ready( {  codigo });

d.      $(document).ready(function () {  codigo }

13.   ¿En web api un controlador web api solo puede trabajar con una tabla del modelo?

a.       Si

b.      No

14.   La única forma de acceder a un controlador web api es JavaScript.

a.       Verdadero

b.      Falso

15.   ¿Para que usamos JSON.stringify?

a.       Para enviar objetos a los métodos del web api.

b.      Para quitar acentos.

c.       Para evitar problemas de compatibilidad con MySQL.

Ese método no existe.

lunes, 2 de junio de 2014

Solución al examen practico de sql

--Examen práctico modulo bases de datos.

--Crear un script de sql para realizar las siguientes tareas.

--1. Crear una base de datos llamada clínica:

--a. La base de datos tendrá dos archivos.

--b. El archivo de datos se llamara clínica_data (.mdf) con tamaño inicial de 20 mb, tamaño máximo 50mb y crecimiento del 20%.

--c. El archivo de registro (log) se llamara clínica_log (.ldf) con tamaño inicial de 15 mb, tamaño máximo 30 mb y crecimiento del 10%.

use master;

drop database ClinicaGPV;

go

create database ClinicaGPV on ( name ='ClinicaGPV_data', filename = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\ ClinicaGPV_data.mdf', size=20mb, maxsize= 50mb, filegrowth=20% )

log on ( name = 'ClinicaGPV_log', filename = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\ ClinicaGPV_log.ldf', size= 15mb, maxsize= 30mb, filegrowth=10% ); go use ClinicaGPV;

 go

--2. En la base de datos crear las siguientes tablas:

--a. Tabla Pacientes con la siguientes columnas:

--i. PacienteID entero clave principal

--ii. Nombre texto requerido.

--iii. Apellidos texto requerido.

--iv. Dirección texto opcional

--v. CodigoPostal texto requerido

--vi. Provincia texto requerido

--vii. Teléfono texto opcional

--viii. FechaNacimiento Fecha requerido.

create table Pacientes( PacienteID int not null primary key, Nombre varchar(50) not null, Apellidos varchar(50) not null, Dirección varchar(100) null, CodigoPostal char(5) not null, Provincia varchar(50) not null, Telefono varchar(12) null, FechaNacimiento Date not null);

 go

--b. Tabla Médicos con la siguientes columnas:

--i. MedicoID entero clave principal

--ii. Nombre texto requerido.

--iii. Apellidos texto requerido.

--iv. Teléfono texto requerido.

create table Medicos( MedicoID int not null primary key, Nombre varchar(50) not null, Apellidos varchar(50) not null, Telefono varchar(12) not null, );

--c. Tabla Ingresos con la siguientes columnas:

--i. NumIngreso entero auto incrementado clave principal

--ii. PacienteID entero requerido clave ajena Pacientes

--iii. Habitación entero requerido

--iv. Cama texto requerido

--v. FechaIngreso FechaHora requerido

create table Ingresos( NumIngreso int not null identity(1,1) primary key, PacienteID int not null, Habitacion int not null, Cama char(1) not null, FechaIngreso DateTime not null, constraint Ingresos_PacientesFk Foreign key (PacienteID) references Pacientes(PacienteID) );

go

--d. Tabla Especialidades con la siguientes columnas:

--i. EspecialidadID entero clave principal

--ii. Especialidad texto requerido

create table Especialidades( EspecialidadID int not null identity(1,1) primary key, Especialidad varchar(50) not null );

go

--e. Tabla MedicosEspecialidades con la siguientes columnas:

--i. EspecialidadID entero clave principal, clave ajena a Especialidades

--ii. MedicoID entero clave principal clave ajena a Médicos

create table MedicosEspecialidades ( EspecialidadID int not null, MedicoID int not null, constraint MedicosEspecialidadesPK primary key (EspecialidadID, MedicoID), constraint MedicosEspecialidades_EspFK foreign key (EspecialidadID) references Especialidades(EspecialidadID), constraint MedicosEspecialidades_MedFK foreign key (MedicoID) references Medicos(MedicoID), );

go

 

alter table Pacientes add constraint ProvinciaDEF Default 'Alicante' for Provincia;

go

--b. El Teléfono tiene que empezar por 9.

alter table Pacientes add constraint TelefonoCheck Check (Telefono like '9%'); go

--4. Crear las siguientes restricciones en la tabla Ingresos:--a. El campo cama solo puede tener o ‘P’ o ‘V’.

 alter table Ingresos add constraint CamaCheck Check (Cama in ('P', 'V'));

go

--b. El valor por defecto del campo FechaIngreso es la fecha y hora actual. alter table Ingresos add constraint FechaIngresoDef Default getDate() for FechaIngreso;

Go

--5. Insertar datos en la tabla Pacientes.

insert into Pacientes( PacienteID, Nombre, Apellidos, CodigoPostal, Provincia, Telefono, FechaNacimiento ) values (100,'José','Romero','28935','Murcia','912563256','12/03/1975'), (101,'Juan','Romero','28935','Murcia','912563256','12/03/1975'), (102,'Carmen','Gómez','28936','Alicante','9125631110','12/09/2012'), (103,'María','Romero','28935','Murcia','912563222','15/03/1985'), (110,'Alberto','Saboya','28935','Murcia','912563333','12/08/1975'), (120,'Jaime','Perles','28936','Alicante','913563444','17/03/1975'), (130,'José','Romero','28935','Alicante','913563555','12/03/1995'), (131,'Ana','Martin','28935','Murcia','913563666','17/06/1975'), (140,'Carlos','Romero','28936','Alicante','912563256','12/03/1995'), (141,'Pedro','Perles','28938','Alicante','912563777','11/05/1993'), (150,'José','Alamar','28935','Alicante','913563256','12/03/1975');

go--6. Insertar datos en la tabla Médicos.

insert into Especialidades(Especialidad) values ('Pediatría'), ('Psiquiatría'), ('General'), ('Intensivos'), ('Cirugía'),('Ginecología');

go

insert into Medicos( MedicoID, Nombre, Apellidos, Telefono) values (1,'Antonio', 'Gómez','653998877'), (2,'Carmen','Sánchez','666999885'), (3,'Eva','Moreno','666584523'), (4,'Juana','Romero','633998877'), (5,'Olga','Pardos','633948877'), (6,'Santiago','Gómez','654798877');

 go

insert into MedicosEspecialidades( MedicoID, EspecialidadID) values (1,1), (2,2),(3,1),(3,3),(4,1), (4,4), (5,3), (5,5), (6,3), (6,6);

go

--7.

insert into Ingresos(PacienteID, Habitacion,Cama, FechaIngreso) values (100, 101, 'P','12/06/2010 16:48:00'), (102, 111,'P','12/06/2010 18:55:00'), (110, 105, 'P','19/06/2010 12:00:00'), (130, 105, 'V','19/06/2010 20:00:00'), (100, 110, 'P','31/12/2010 20:48:00'), (140, 106, 'P','31/12/2010 22:48:00'), (102, 101, 'P','12/06/2011 16:48:00'), (100, 103, 'P','15/06/2011 16:48:00'), (150,101,'P','19/06/2011 16:48:00');

go

--8. Sacar un listado de los médicos que tienen más de una especialidad.

select m.Nombre, m.Apellidos, COUNT(me.EspecialidadID ) as NumEspec from Medicos m inner join MedicosEspecialidades me on m.MedicoID = me.MedicoID group by m.Nombre, m.Apellidos having COUNT(me.EspecialidadID ) > 1

 go

--9. Mostar el nombre del paciente con más ingresos en el año 2010

select top 1 p.Nombre, p.Apellidos, COUNT(i.NumIngreso) as NumIngresos from Pacientes p inner join Ingresos i on p.PacienteID = i.PacienteID where DATEPART(year, i.fechaingreso) = 2010 group by p.Nombre, p.Apellidos order by NumIngresos desc

 go

--10. Mostrar los pacientes que no han tenido ingresos.

select * from Pacientes p where p.PacienteID not in ( select distinct PacienteID from Ingresos)

 go

--11. Mostrar los pacientes que han estado en la habitación 101.

select distinct p.PacienteID, p.Nombre, p.Apellidos from Pacientes p inner join Ingresos i on p.PacienteID = i.PacienteID where i.Habitacion = 101

go

--12 Crear lo necesaria para almacenar esta información.

create table Visitas( NumVisita int not null identity(1,1) primary key, PacienteID int not null, MedicoID int not null, Fecha date not null, Diagnostico varchar(50) not null, Tratamiento varchar(100) not null, constraint Visitas_PacintesFK foreign key (PacienteID) references pacientes(PacienteId),

constraint Visitas_MedicosFK foreign key (MedicoID) references Medicos(MedicoID));

go

insert into Visitas(PacienteID,MedicoID, Fecha , Diagnostico,Tratamiento) values (100,2,'12/06/2010','Posible Loco','Ingresar para seguimiento'), (100,5,'15/06/2010','Heridas','Tratar con antibióticos'), (102,1,'19/06/2010','Gastroenteritis','Tratar antibióticos y suero'), (131,6,'20/06/2010','Infección','Tratar antibióticos y revisión 1 mes'), (150,2,'22/06/2010','Depresión','Tratar con antidepresivos'), (131,6,'12/07/2010','revisión','Alta');

go

--13. Mostrar un listado de los pacientes de Psiquiatría,

 --incluyendo la fecha y el diagnostico.

select p.Nombre , p.Apellidos, v.Fecha, v.Diagnostico from Pacientes p inner join Visitas v on p.PacienteID = v.PacienteID inner join Medicos m on m.MedicoID = v.MedicoID inner join MedicosEspecialidades me on m.MedicoID = me.MedicoID inner join Especialidades e on e.EspecialidadID = me.EspecialidadID where e.Especialidad = 'Psiquiatría'

 

--14. Mostrar los pacientes ingresados en junio de 2011 y

--sus tratamientos, ordenados por la fecha de nacimiento y la fecha del

--tratamiento.

select p.Nombre, p.Apellidos,v.Tratamiento from Pacientes p inner join Ingresos i on p.PacienteID = i.PacienteID inner join Visitas v on v.PacienteID = i.PacienteID where i.FechaIngreso >= '01/06/2011' and i.FechaIngreso <'01/07/2011' order by p.FechaNacimiento, v.Fecha

--15. Atender a Pedro Perles en medicina general --por el doctor de la especialidad que tenga menos visitas.

insert into Visitas(PacienteID,MedicoID, Fecha , Diagnostico,Tratamiento) select top 1

(select MAX( PacienteID) from Pacientes where Nombre='Pedro' and Apellidos='Perles' ) as PID

, m.MedicoID, GETDATE(), 'agotamiento', 'reposo absoluto' from Medicos m left join Visitas v on m.MedicoID = v.MedicoID inner join MedicosEspecialidades me on m.MedicoID = me.MedicoID inner join Especialidades e on e.EspecialidadID=me.EspecialidadID where e.Especialidad = 'General' group by m.MedicoID order by COUNT(v.MedicoID)

 

select * from Visita