Jonnathan Bartly Monge (jbartly2011@gmail.com) Walter Chavarra Mora (wchavarria03@gmail.com) Josu Murillo Len (josue.murillo.leon@gmail.com)
Colaboradora: Prof. Marlen Trevio Villalobos (marlentrevi@gmail.com) Enlace de Presentacin: https://slidebean.com/p/aJjnRqB1Ea/MongoDB Primero Creamos la Base de datos use bookshelf switched to db bookshelf
Creacin de colecciones Primero se crea la coleccin: db.createCollection(books) { ok: 1 } db.createCollection(magazines) { ok: 1 }
Insertar un documento en la base de datos anterior: Se puede indicar una clave nica (Opcional): (si se indica debe usar un id distinto en cada insercin) db.books.ensureIndex({idBook:1},{unique: true})
Se crea un documento: medieval = {name:Game of Thrones,qty:10,price:19000} { name: Game of Thrones, qty:10, price:19000 } Luego lo insertamos el documento en una coleccin: (Este comando si no existe la coleccin la crea) db.books.insert(medieval)
Se pueden hacer inserciones mltiples: db.books.insert(*{name:Game of Thrones 2,qty:5, price:20000},{name:Game of Thrones 3,qty:5, price:22000}])
Bsquedas en documentos: Se busca el libro con el nombre respectivo db.books.find({name:Game of Thrones}) { _id: ObjectId(539083d56ca7450eb139e92d), name: Game of Thrones, qty:10, price:19000} Se puede obtener los libros con cantidad menor a 8. db.books.find( {qty:{$lt:8}} ) { _id: ObjectId(539083d56ca7450eb139e990), name: Game of Thrones 2, qty:5, price:20000} { _id: ObjectId(539083d56ca7450eb139e991), name: Game of Thrones 3, qty:5, price:22000}
Modificar Documentos Se puede modificar la informacin en un documento, se selecciona el libro por nombre y se modifica la cantidad. db.books.update({name:Game of Thrones 3},{qty:7})
Se pueden incrementar el valor de los datos numricos, en este caso se incrementa la cantidad en 7 unidades. db.books.update({name:Game of Thrones 3},{$inc:{qty:7}})
Se pueden incrementar varios valores de datos numricos en un mismo query, en este caso se incrementa la cantidad en 7 y se le resta 2000 al precio. db.books.update({name:Game of Thrones 3},$inc:{qty:7,price:-2000})
Se pueden incrementar varios valores de datos numricos en un mismo query, de varios documentos, al activr el multi:true lo que se hace es incrementar la cantidad en 7 de todos los documentos que cumplan con el criterio de bsqueda y no solo del primero como normalmente se hara. db.books.update({name:Game of Thrones 3},{$inc:{qty:7},{multi:true})
Agregar un campo a un documento, se le agrega el campo type:Medieval al documento que cumpla con la condicin. db.books.update({name:Game of Thrones 3},{$set:{ type:Medieval}})
Eliminar un campo en un documento, se elimina el campo type del documento seleccionado. db.books.update({name:Game of Thrones 3},$unset:{ type:Medieval})
Eliminar una coleccin Se puede eliminar la coleccin sin importar su contenido db.magazines.drop() true
Eliminar Documento Se puede eliminar el documento sin importar su contenido db.books.remove({name:Crepusculo})
Tablas Comandos: Comando Ejemplo Funcin Nota Base de Datos show dbs show dbs Muestra las bases de datos existentes de manera fsica. Si la base de datos no contiene informacin la misma no se mostrara, por default podemos encontrar local. db db Indica en cual base de datos se encuentra trabajando actualmente. Si se est iniciando mongo por default nos indicara la base de datos test. db.dropDatabase() db.dropDatabase() Elimina la base de datos en la que se encuentra trabajando.
db.copyDatabase(old_name, new name) db.copyDatabase(bookshl f,bookshelf) Para copiar o renombrar la base de datos. Primero se indica el nombre de la base existente y luego el nombre del destino de la copia. Cuando lo que se quiere es renombrar, despus de realizar esto se debe borrar la base de datos anterior. use use bookshelf Utilizamos la base de datos indicada, si no existe se crea. Si no se le agrega nada a la base de datos esta no se almacenara fsicamente.
Comando Ejemplo Funcin Nota Colecciones - show collections - show tables
- show collections - show tables Muestra la lista de colecciones en la base de datos actual. Si no existen colecciones el comando no devolver ninguna respuesta. La coleccin System.indexes mantiene los ndices de todas las colecciones. db.createCollection(name,{options} ) db.createCollection(books ) Crea la coleccin con el nombre indicado, en las opciones se puede indicar, tamao en disco fsico y cantidad mxima de documentos. Si se indica el nombre de una existente devolver un mensaje de error indicando que ya existe el nombre.
db.oldName.renameCollection(new Name) db.book.renameCollection( books) Renombra la coleccin, cuenta con opciones para borrar la coleccin anterior o mantenerla, por default la elimina. Si se indica el mismo nombre dar error porque detectara una coleccin existente con ese nombre. db.name.drop() db.books.drop() Elimina la coleccin completa. Si la eliminar devuelve true, si no lo hace devuelve falso.
Comando Ejemplo Funcin Nota Documentos db.collection.ensureIndex( {id:1} ,{unique:true} ) db.books.ensureIndex( {idBook:1} ,{unique:true} ) Crea un valor nico en los documentos que se quieran insertar a la coleccin. No hace que sea obligatorio el campo, pero si nico. No aplica para los sub documentos. db.collection.insert( { name:info })
Inserta en la coleccin el documento indicado. Puede contener sub documentos, y el id se le agrega por defecto si no se le indica uno. db.collection.insert( [ { _id: 20, item: "item1", qty: 50, type: "desk" }, { _id: 21, item: "item2", qty: 20, type: "floor" }, { _id: 22, item: "item3", qty: 100 } ] ) db.books.insert( [ { _id: 20, name: "GoT1", qty: 10}, { _id: 21, item: "item2", qty: 20, type: "floor" }, { _id: 22, item: "item3", qty: 100 } ] ) Se realiza la insercin de varios documentos a la vez.
db.collection.find() db.books.find() Devuelve un listado con todos los documentos y la informacin que contiene. Si no contiene nada, no devuelve ninguna respuesta.
Comando Ejemplo Funcin Nota Documentos db.collection.find({name:info}) db.books.find( {name:Game of Thrones} ) Obtiene todos los documentos que tengan la informacion exacta indicada.
db.books.find( {name:Game of Thrones} ).limit(3) Devuelve nicamente los primeros 3 resultados. Si hay menos resultados de los indicados nicamente devuelve los que encuentre. db.books.findOne({name: Game of Thrones}) Devuelve el primer resultado que encuentre, un nico resultado.
db.collection.find( {item}:{$lt:42}), {item2:0,_id:0} ) db.books.find( {idBook}:{$lt:42}), {name:0,_id:0} ) Devuelve los documentos con el idBook mientras sea menor a 42, y no muestra el nombre ni el _id.
Comando Ejemplo Funcin Nota Documentos db.books.update( { _id: 11 }, { $unset: { stock: 1 } },{multi:true} ) Remueve el campo estock del arreglo. Multi es la propiedad de aplicrselo a varios datos al azar. db.students.update( { _id: 1 }, { $rename: { "nmae": "name" } } ) Cambia el nombre de un tem en un documento.
db.students.update( { _id: 1 }, { $rename: { "name.first": "name.fname" } } ) Cambia el nombre de un tem en un sub documento.
db.scores.update( { _id: 1 }, { $max: { highScore: 950 } } ) Si la mxima cantidad encontrada es menor a la indicada entonces se reemplaza por esta indicada.
db.scores.update( { _id: 1 }, { $min: { lowScore: 150 } } ) Si la mnima cantidad encontrada es mayor a la indicada entonces se reemplaza por esta indicada.
db.collection.save({}) db.products.save( { _id: 100, item: "water", qty: 30 } ) Si el id indicado no existe funciona como un insert, si existe entonces reemplaza todo el documento por la informacin que se le provee.
db.collection.remove({}) db.books.remove({info:}) Elimina el documento que cumpla con la condicin de bsqueda. Retorna false si no se puede borrar y true si se borr.
Taller COMPDES 2014 Da 2,3 "Conectando MongoDB con ASP .Net"
Jonnathan Bartly Monge (jbartly2011@gmail.com) Walter Chavarra Mora (wchavarria03@gmail.com) Josu Murillo Len (josue.murillo.leon@gmail.com)
Colaboradora: Prof. Marlen Trevio Villalobos (marlentrevi@gmail.com) Definicio n de Problema
Una empresa de nombre Coopatrac R.L brinda servicios de transporte pblico especializado en autobuses. Para tener un control de su flota y personal de recurso humano lleva un registro manual en un cuaderno donde anota la ruta que un autobs recorrer, el nombre del bus y el nombre del chofer encargado de conducir el autobs.
Recientemente tuvieron problemas con el registro ya que se perdi el cuaderno de anotaciones. Por esta razn Coopatrac R.L quiere una aplicacin web que le permita llevar el registro de choferes, autobuses y rutas. Tambin pidi de requisito que la aplicacin sea rpida en la insercin y acceso a los datos.
db.rutas.insert({ruta:" Ciudad Quesada-Florencia ", chofer:"Jorge", bus:" Mercedes Benz ", salida_deposito: "05:30 am", entrada_deposito:"09:40 pm", tiempo_viaje:"30 min"})
La siguiente gua pretende facilitar a los usuarios un mejor y ms rpido aprendizaje respecto al uso de MongoDB siendo consumido por una aplicacin web en ASP .Net.
La aplicacin consiste en la administracin rutinaria de las rutas laborales de autobuses. Se deben registrar rutas y los choferes y buses que se utilizarn para cada ruta laboral.
Iniciemos:
1. En primer lugar se debe crear un nuevo proyecto Web vaco, se le da nombre y la direccin donde se guardar el proyecto en la PC.
2. Una vez se haya generado el proyecto nuevo, se abre el archivo Web.config y se le agrega las siguientes lneas de cdigo, las cuales son para realizar la coneccin a la base de datos:
3. Para poder hacer uso de las funcionalidades mongo dentro del proyecto se debe instalar el paquete mongocsharpdriver, se abre la pestaa de Herramientas en el men principal, luego al Administrador de Libreras de Paquete y se selecciona la Consola de Administracin de Paquetes:
En la Consola de Administracin de Paquetes se escribe el siguiente comando: Install-Package mongocsharpdriver
4. Para un mayor orden del proyecto se recomienda el uso de carpetas para la divisin de archivos. Los archivos que se necesitarn son: bll.cs (para la lgica de negocio). ddl.cs (para realizar los mtodos referentes a la base de datos). clsInfoBuses.cs (clase con la estructura de la coleccin de buses). clsInfoChoferes.cs (clase con la estructura de la coleccin de choferes). clsInfoComboRutas.cs (clase con la estructura de la coleccin de rutas fsicas). clsInfoRutas.cs (clase con la estructura de la coleccin de rutas laborales). vBuses.aspx (interfaz grfica para la funcionalidad de la lgica de buses). vChoferes.aspx (interfaz grfica para la funcionalidad de la lgica de choferes). vRutas.aspx (interfaz grfica para la funcionalidad de la lgica de rutas laborales).
5. Para la vista de choferes se necesita los siguientes componentes:
6. Para la vista de buses se necesita los siguientes componentes:
7. Para la vista de rutas se necesita los siguientes componentes:
8. La clase de clsInfoChoferes.cs tiene la siguiente estructura: public ObjectId _id { get; set; } public string nombre { get; set; } public string apellidos { get; set; } public string cedula { get; set; } public string telefono { get; set; } public string direccion { get; set; } public int anos_experiencia { get; set; } Adems, se debe llamar al using MongoDB.Bson; en la parte superior del archivo.
9. La clase de clsInfoBuses.cs tiene la siguiente estructura: public ObjectId _id { get; set; } public string marca { get; set; } public string modelo { get; set; } public string n_placa { get; set; } public int capacidad { get; set; } public string estado { get; set; } public string descripcion { get; set; } Adems, se debe llamar al using MongoDB.Bson; en la parte superior del archivo.
10. La clase de clsInfoComboRutas.cs tiene la siguiente estructura: public ObjectId _id { get; set; } public string ruta { get; set; } Adems, se debe llamar al using MongoDB.Bson; en la parte superior del archivo.
11. La clase de clsInfoRutas.cs tiene la siguiente estructura: public ObjectId _id { get; set; } public string ruta { get; set; } public string chofer { get; set; } public string bus { get; set; } public string salida_deposito { get; set; } public string entrada_deposito { get; set; } public string tiempo_viaje { get; set; } Adems, se debe llamar al using MongoDB.Bson; en la parte superior del archivo.
12. En el archivo dll.cs se mantienen los mtodos respectivos para el funcionamiento de la base de datos. En primer lugar est el mtodo que establece la conexin a MongoDB y devuelve la base de datos respectiva. /// <summary> /// Establece conexin a la base de datos. /// </summary> /// <param name="db">Nombre de la base de datos</param> /// <returns></returns> public MongoDatabase conn(string db) { MongoServer server = MongoServer.Create(ConfigurationManager.AppSettings["connectionString "]); MongoDatabase myDB = server.GetDatabase(db); return myDB; } 13. Los siguientes mtodos son para la obtencin de los distintos documentos en la base de datos: /// <summary> /// Obtiene todos los choferes de la coleccin. /// </summary> /// <returns></returns> public List<clsInfoChoferes> _Lista_Choferes() { MongoDatabase myDatabase = conn("compdes2014"); List<clsInfoChoferes> list = new List<clsInfoChoferes>(); MongoCollection<clsInfoChoferes> collection = myDatabase.GetCollection<clsInfoChoferes>("choferes"); return collection.FindAll().ToList<clsInfoChoferes>(); }
/// <summary> /// Obtiene todos los buses de la coleccin. /// </summary> /// <returns></returns> public List<clsInfoBuses> _Lista_Buses() { MongoDatabase myDatabase = conn("compdes2014"); List<clsInfoBuses> list = new List<clsInfoBuses>(); MongoCollection<clsInfoBuses> collection = myDatabase.GetCollection<clsInfoBuses>("buses"); return collection.FindAll().ToList<clsInfoBuses>(); }
/// <summary> /// Obtiene todos las rutas de la coleccin dependiendo de la categoria. /// </summary> /// <param name="categoria">Tipo de restriccin para hallar los documentos</param> /// <param name="consulta">Restriccin para hallar los documentos</param> /// <returns></returns> public List<clsInfoRutas> _Lista_Rutas(string categoria, string consulta) { MongoDatabase myDatabase = conn("compdes2014"); List<clsInfoRutas> list = new List<clsInfoRutas>(); MongoCollection<clsInfoRutas> collection = myDatabase.GetCollection<clsInfoRutas>("rutas"); if (categoria == "todos") { foreach (clsInfoRutas documento in collection.FindAll()) { list.Add(documento); } return list; }
foreach (clsInfoRutas documento in collection.Find(Query.EQ(categoria, consulta))) { list.Add(documento); } return list; } 14. Los siguientes mtodos son para la insercin de los distintos documentos en la base de datos: /// <summary> /// Inserta chofer en la base de datos. /// </summary> /// <param name="nombre">Nombre</param> /// <param name="apellidos">Apellidos</param> /// <param name="cedula">Cedula</param> /// <param name="telefono">Telefono</param> /// <param name="direccion">Direccion</param> /// <param name="anos_experiencia">Aos Experiencia</param> public void _insertarChofer(string nombre, string apellidos, string cedula, string telefono, string direccion, int anos_experiencia) { MongoDatabase myDatabase = conn("compdes2014"); MongoCollection<clsInfoChoferes> document = myDatabase.GetCollection<clsInfoChoferes>("choferes"); BsonDocument chofer = new BsonDocument { {"nombre",nombre}, {"apellidos",apellidos}, {"cedula",cedula}, {"telefono",telefono}, {"direccion",direccion}, {"anos_experiencia",anos_experiencia} }; document.Insert(chofer); }
/// <summary> /// Inserta bus en la base de datos /// </summary> /// <param name="marca">Marca</param> /// <param name="modelo">Modelo</param> /// <param name="n_placa">N de Placa</param> /// <param name="capacidad">Capacidad</param> /// <param name="estado">Estado</param> /// <param name="descripcion">Direccin</param> public void _insertarBus(string marca, string modelo, string n_placa, int capacidad, string estado, string descripcion) { MongoDatabase myDatabase = conn("compdes2014"); MongoCollection<clsInfoBuses> document = myDatabase.GetCollection<clsInfoBuses>("buses"); BsonDocument bus = new BsonDocument { {"marca",marca}, {"modelo",modelo}, {"n_placa",n_placa}, {"capacidad",capacidad}, {"estado",estado}, {"descripcion",descripcion} }; document.Insert(bus); }
/// <summary> /// Inserta ruta en la base de datos /// </summary> /// <param name="ruta">Nombre de ruta</param> /// <param name="chofer">Nombre de chofer</param> /// <param name="bus">Marca de bus</param> /// <param name="salida_deposito">Hora salida deposito</param> /// <param name="entrada_deposito">Hora entrada deposito</param> /// <param name="tiempo_viaje">Tiempo aproximado de viaje</param> public void _insertarRuta(string ruta, string chofer, string bus, string salida_deposito, string entrada_deposito, string tiempo_viaje) { MongoDatabase myDatabase = conn("compdes2014"); MongoCollection<clsInfoRutas> document = myDatabase.GetCollection<clsInfoRutas>("rutas"); BsonDocument rutas = new BsonDocument { {"ruta",ruta}, {"chofer",chofer}, {"bus",bus}, {"salida_deposito",salida_deposito}, {"entrada_deposito",entrada_deposito}, {"tiempo_viaje",tiempo_viaje} }; document.Insert(rutas); }
15. Los siguientes mtodos son para la modificacin de los distintos documentos en la base de datos: /// <summary> /// Modifica chofer en la base de datos /// </summary> /// <param name="_id">ID del chofer a modificar</param> /// <param name="nombre">Nombre</param> /// <param name="apellidos">Apellidos</param> /// <param name="cedula">Cedula</param> /// <param name="telefono">Telefono</param> /// <param name="direccion">Direccion</param> /// <param name="anos_experiencia">Aos de Experiencia</param> public void _modificarChofer(ObjectId _id, string nombre, string apellidos, string cedula, string telefono, string direccion, int anos_experiencia) { MongoDatabase myDatabase = conn("compdes2014"); MongoCollection<clsInfoChoferes> chofer = myDatabase.GetCollection<clsInfoChoferes>("choferes"); IMongoQuery query = Query.EQ("_id", _id); IMongoUpdate update = MongoDB.Driver.Builders.Update.Set("nombre", nombre) .Set("apellidos", apellidos) .Set("cedula", cedula) .Set("telefono", telefono) .Set("direccion", direccion) .Set("anos_experiencia", anos_experiencia); chofer.Update(query, update); }
/// <summary> /// Modifica bus en la base de datos /// </summary> /// <param name="_id">ID del bus a modificar</param> /// <param name="marca">Marca</param> /// <param name="modelo">Modelo</param> /// <param name="n_placa">N de Placa</param> /// <param name="capacidad">Capacidad</param> /// <param name="estado">Estado</param> /// <param name="descripcion">Descripcion</param> public void _modificarBus(ObjectId _id, string marca, string modelo, string n_placa, int capacidad, string estado, string descripcion) { MongoDatabase myDatabase = conn("compdes2014"); MongoCollection<clsInfoChoferes> bus = myDatabase.GetCollection<clsInfoChoferes>("buses"); IMongoQuery query = Query.EQ("_id", _id); IMongoUpdate update = MongoDB.Driver.Builders.Update.Set("marca", marca) .Set("modelo", modelo) .Set("n_placa", n_placa) .Set("capacidad", capacidad) .Set("estado", estado) .Set("descripcion", descripcion); bus.Update(query, update); }
/// <summary> /// Modifica ruta en la base de datos /// </summary> /// <param name="_id">ID de ruta a modificar</param> /// <param name="ruta">Nombre de ruta</param> /// <param name="chofer">Nombre de chofer</param> /// <param name="bus">Marca de bus</param> /// <param name="salida_deposito">Hora salida deposito</param> /// <param name="entrada_deposito">Hora entrada deposito</param> /// <param name="tiempo_viaje">Tiempo aproximado de viaje</param> public void _modificarRuta(ObjectId _id, string ruta, string chofer, string bus, string salida_deposito, string entrada_deposito, string tiempo_viaje) { MongoDatabase myDatabase = conn("compdes2014"); MongoCollection<clsInfoRutas> rutas = myDatabase.GetCollection<clsInfoRutas>("rutas"); IMongoQuery query = Query.EQ("_id", _id); IMongoUpdate update = MongoDB.Driver.Builders.Update.Set("ruta", ruta) .Set("chofer", chofer) .Set("bus", bus) .Set("salida_deposito", salida_deposito) .Set("entrada_deposito", entrada_deposito) .Set("tiempo_viaje", tiempo_viaje); rutas.Update(query, update); }
16. Los siguientes mtodos son para la eliminacin de los distintos documentos en la base de datos: /// <summary> /// Elimina chofer de la base de datos /// </summary> /// <param name="_id">ID del chofer a eliminar</param>
/// <summary> /// Elimina bus de la base de datos /// </summary> /// <param name="_id">ID del bus a eliminar</param> public void _eliminarBus(ObjectId _id) { MongoDatabase myDatabase = conn("compdes2014"); MongoCollection<clsInfoChoferes> bus = myDatabase.GetCollection<clsInfoChoferes>("buses"); IMongoQuery query = Query.EQ("_id", _id); bus.Remove(query); }
/// <summary> /// Elimina ruta de la base de datos /// </summary> /// <param name="_id">ID de ruta a eliminar</param> public void _eliminarRuta(ObjectId _id) { MongoDatabase myDatabase = conn("compdes2014"); MongoCollection<clsInfoRutas> rutas = myDatabase.GetCollection<clsInfoRutas>("rutas"); IMongoQuery query = Query.EQ("_id", _id); rutas.Remove(query); }
17. El siguiente mtodo obtiene los documentos de la coleccin que almacena las rutas fsicas que debe recorrer un autobs, esos documentos son para el DropDownList de Rutas. /// <summary> /// Obtiene una lista con el nombre de todas las rutas. /// </summary> /// <returns></returns> public List<clsInfoComboRutas> _obtenerComboRutas() { MongoDatabase myDatabase = conn("compdes2014"); List<clsInfoComboRutas> list = new List<clsInfoComboRutas>(); MongoCollection<clsInfoComboRutas> collection = myDatabase.GetCollection<clsInfoComboRutas>("comborutas"); return collection.FindAll().ToList<clsInfoComboRutas>(); }
18. Se debe realizar las referencias a: using MongoDB_COMPDES_2014.Utilerias; using MongoDB.Driver; using MongoDB.Driver.Builders; using MongoDB.Bson;
19. En el archivo bll.cs se mantienen los mtodos respectivos para el funcionamiento de la base de datos. En primer lugar est el mtodo que convierte una estructura tipo List a una estructura tipo DataTable. /// <summary> /// Lista de datos a convertir en DataTable /// </summary> /// <typeparam name="T">Tipo de lista</typeparam> /// <param name="items">Lista</param> /// <returns></returns> public DataTable _ToDataTable<T>(List<T> items) { DataTable dataTable = new DataTable(typeof(T).Name); PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo prop in Props) { dataTable.Columns.Add(prop.Name); } foreach (T item in items) { var values = new object[Props.Length]; for (int i = 0; i < Props.Length; i++) { values[i] = Props[i].GetValue(item, null); } dataTable.Rows.Add(values); } return dataTable; }
20. Los siguientes mtodos son para la obtencin de los distintos documentos de la dll: /// <summary> /// Consulta la lista de choferes a partir de la ddl /// </summary> /// <returns></returns> public DataTable _consultarChoferes() { List<clsInfoChoferes> list = odll._Lista_Choferes(); return _ToDataTable(list); }
/// <summary> /// Consulta la lista de buses a partir de la ddl /// </summary> /// <returns></returns> public DataTable _consultarBuses() { List<clsInfoBuses> list = odll._Lista_Buses(); return _ToDataTable(list); }
/// <summary> /// Consulta la lista de rutas a partir de la ddl /// </summary> /// <param name="_categoria">Categoria de busqueda</param> /// <param name="consulta">Parametro de busqueda</param> /// <returns></returns> public DataTable _consultarRutas(string _categoria, string consulta) { string categoria = _categoria.ToLower(); List<clsInfoRutas> list = odll._Lista_Rutas(categoria, consulta); return _ToDataTable(list); }
21. Los siguientes mtodos son para la insercin de los distintos documentos hacia la dll: /// <summary> /// Inserta choferes a la base de datos a partir de la dll /// </summary> /// <param name="nombre">Nombre</param> /// <param name="apellidos">Apellidos</param> /// <param name="cedula">Cedula</param> /// <param name="telefono">Telefono</param> /// <param name="direccion">Direccion</param> /// <param name="anos_experiencia">Aos de Experiencia</param> public void _insertarChofer(string nombre, string apellidos, string cedula, string telefono, string direccion, int anos_experiencia) { odll._insertarChofer(nombre, apellidos, cedula, telefono, direccion, anos_experiencia); }
/// <summary> /// Inserta buses a la base de datos a partir de la dll
/// <summary> /// Inserta rutas a la base de datos a partir de la dll /// </summary> /// <param name="ruta">Nombre de la ruta</param> /// <param name="chofer">Nombre del chofer</param> /// <param name="bus">Nombre del bus</param> /// <param name="salida_deposito">Hora salida deposito</param> /// <param name="entrada_deposito">Hora entrada deposito</param> /// <param name="tiempo_viaje">Tiempo aproximado de viaje</param> public void _insertarRuta(string ruta, string chofer, string bus, string salida_deposito, string entrada_deposito, string tiempo_viaje) { odll._insertarRuta(ruta, chofer, bus, salida_deposito, entrada_deposito, tiempo_viaje); }
22. Los siguientes mtodos son para la modificacin de los distintos documentos hacia la dll: /// <summary> /// Modifica choferes en la base de datos a partir de la dll /// </summary> /// <param name="_id">ID del chofer a modificar</param> /// <param name="nombre">Nombre</param> /// <param name="apellidos">Apellidos</param> /// <param name="cedula">Cedula</param> /// <param name="telefono">Telefono</param> /// <param name="direccion">Direccion</param> /// <param name="anos_experiencia">Aos de Experiencia</param> public void _modificarChofer(string _id, string nombre, string apellidos, string cedula, string telefono, string direccion, int anos_experiencia) { odll._modificarChofer(ObjectId.Parse(_id), nombre, apellidos, cedula, telefono, direccion, anos_experiencia); }
/// <summary> /// Modifica buses en la base de datos a partir de la dll /// </summary> /// <param name="_id">ID del bus a modificar</param> /// <param name="marca">Marca</param> /// <param name="modelo">Modelo</param> /// <param name="n_placa">N de Placa</param> /// <param name="capacidad">Capacidad</param> /// <param name="estado">Estado</param> /// <param name="descripcion">Descripcion</param> public void _modificarBus(string _id, string marca, string modelo, string n_placa, int capacidad, string estado, string descripcion) { odll._modificarBus(ObjectId.Parse(_id), marca, modelo, n_placa, capacidad, estado, descripcion); }
/// <summary> /// Modifica rutas en la base de datos a partir de la dll /// </summary> /// <param name="_id">ID de la ruta a modificar</param> /// <param name="ruta">Nombre de la ruta</param> /// <param name="chofer">Nombre del chofer</param> /// <param name="bus">Nombre del bus</param> /// <param name="salida_deposito">Hora salida deposito</param> /// <param name="entrada_deposito">Hora entrada deposito</param> /// <param name="tiempo_viaje">Tiempo aproximado de voaje</param> public void _modificarRuta(string _id, string ruta, string chofer, string bus, string salida_deposito, string entrada_deposito, string tiempo_viaje) { odll._modificarRuta(ObjectId.Parse(_id), ruta, chofer, bus, salida_deposito, entrada_deposito, tiempo_viaje); }
23. Los siguientes mtodos son para la eliminacin de los distintos documentos hacia la dll: /// <summary> /// Elimina choferes de la base de datos a partir de la dll /// </summary> /// <param name="_id">ID del chofer a eliminar</param> public void _eliminarChofer(string _id) { odll._eliminarChofer(ObjectId.Parse(_id)); }
/// <summary> /// Elimina buses de la base de datos a partir de la dll /// </summary> /// <param name="_id">ID del bus a eliminar</param> public void _eliminarBus(string _id) { odll._eliminarBus(ObjectId.Parse(_id)); }
/// <summary> /// Elimina rutas de la base de datos a partir de la dll /// </summary> /// <param name="_id">ID de la ruta a eliminar</param> public void _eliminarRuta(string _id) { odll._eliminarRuta(ObjectId.Parse(_id)); }
24. El siguiente mtodo recibe de la dll los documentos de la coleccin que almacena las rutas fsicas que debe recorrer un autobs, esos documentos son para el DropDownList de Rutas: /// <summary> /// Consulta la lista con el nombre de todas las rutas a aprtir de la dll. /// </summary> /// <returns></returns> public DataTable _cargaComboRutas() { List<clsInfoComboRutas> list = odll._obtenerComboRutas(); return _ToDataTable(list); }
25. Se debe realizar las referencias a: using MongoDB_COMPDES_2014.DAL; using MongoDB_COMPDES_2014.Utilerias; using MongoDB.Bson;
Adems, antes de todos los mtodos se debe inicializar la clase dll.cs: dll odll = new dll();
26. En el archivo vBuses.aspx.cs se debe llamar a los mtodos de la bll: bll obll = new bll(); static string ID_Modificar = ""; static DataTable tempTable = new DataTable();
27. Se deben referenciar lo siguiente: using MongoDB_COMPDES_2014.BLL; using MongoDB.Bson; using System.Data;
28. En el archivo vChoferes.aspx.cs se debe llamar a los mtodos de la bll: bll obll = new bll(); static string ID_Modificar = ""; static DataTable tempTable = new DataTable();
30. En el archivo vRutas.aspx.cs se debe llamar a los mtodos de la bll: bll obll = new bll(); static string ID_Modificar = ""; static DataTable tempTable = new DataTable(); protected void Page_Load(object sender, EventArgs e) { tempTable = obll._consultarRutas("Todos", ""); gdrRutas.DataSource = tempTable; gdrRutas.DataBind();
if (!Page.IsPostBack) { cargarcombos(); } }
/// <summary> /// Llama a la ventana de choferes /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnChoferesRutas_Click(object sender, EventArgs e) { Response.Redirect("vChoferes.aspx"); }
/// <summary> /// Llama a la ventana de buses /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnBusesRutas_Click(object sender, EventArgs e) { Response.Redirect("vBuses.aspx"); }
/// <summary> /// Carga los drop down list con la informacion obtenida /// </summary> protected void cargarcombos() { ddlRutas.DataTextField = "ruta"; ddlRutas.DataValueField = "ruta"; ddlRutas.DataSource = obll._cargaComboRutas(); ddlRutas.DataBind();