public override ICollection <DTOActores> ListarCmb() { try { ManagerDb db = new ManagerDb(); String query = "SELECT ACT_CODIGO, ACT_NOMBRES FROM ACTORES ORDER BY ACT_NOMBRES"; DataTable tbl = db.ObtenerDatos(query); List <DTOActores> data = tbl.AsEnumerable().Select(x => new DTOActores { Codigo = x.Field <int>("ACT_CODIGO"), Nombre = x.Field <string>("ACT_NOMBRES") }).ToList(); return(data); } catch (Exception ex) { Exception ex1 = ex; while (ex1.InnerException != null) { ex1 = ex1.InnerException; } throw new Exception(ex1.Message); } }
public override void Editar(DTOPeliculas data) { try { String Message = String.Empty; Message = this.ValidaPelicula(data); if (String.IsNullOrEmpty(Message)) { ManagerDb db = new ManagerDb(); DataTable tbl = db.ObtenerDatos("SELECT 1 FROM PELICULAS WHERE PEL_TITULO = @TITULO AND PEL_CODIGO <> @CODIGO", new SqlParameter("@TITULO", data.Titulo), new SqlParameter("@CODIGO", data.Codigo)); if (tbl.Rows.Count > 0) { throw new CustomException("<li>El titulo ingresado ya se encuentra registrado en la base de datos, por favor corrigalo e intentelo de nuevo"); } else { String query = "UPDATE PELICULAS SET PEL_TITULO = @PEL_TITULO, PEL_DIRECTOR = @PEL_DIRECTOR, PEL_COSTOALQUILER = @PEL_COSTOALQUILER, PEL_CANTIDADINVENTARIO = @PEL_CANTIDADINVENTARIO, PEL_FECHAMODIFICA = CURRENT_TIMESTAMP WHERE PEL_CODIGO = @PEL_CODIGO"; db.Ejecutar(query, new SqlParameter("@PEL_CODIGO", data.Codigo), new SqlParameter("@PEL_TITULO", data.Titulo), new SqlParameter("@PEL_DIRECTOR", data.Director), new SqlParameter("@PEL_COSTOALQUILER", data.CostoAlquiler), new SqlParameter("@PEL_CANTIDADINVENTARIO", data.CantidaInventario)); db.Ejecutar("DELETE FROM ACTORES_PELICULAS WHERE PEL_CODIGO = @CODIGO", new SqlParameter("@CODIGO", data.Codigo)); foreach (DTOActores actor in data.Actores) { query = "INSERT INTO ACTORES_PELICULAS (ACT_CODIGO, PEL_CODIGO) VALUES (@ACT_CODIGO, @PEL_CODIGO)"; db.Ejecutar(query, new SqlParameter("@ACT_CODIGO", actor.Codigo), new SqlParameter("@PEL_CODIGO", data.Codigo)); } } } else { throw new CustomException("<ul>" + Message + "</ul>"); } } catch (CustomException ex) { throw new CustomException(ex.Message); } catch (Exception ex) { Exception ex1 = ex; while (ex1.InnerException != null) { ex1 = ex1.InnerException; } throw new Exception(ex1.Message); } }
/// <summary> /// Obtiene los usuarios almacenados en la base de datos para mostrarse en una grid de datos con paginación /// </summary> /// <param name="Skip">Posición desde la cual se iniciará la búsqueda</param> /// <param name="Take">Cantidad de registros a traer</param> /// <returns></returns> public override DTODataGrid <DTOUsuarios> Listar(int Skip, int Take) { try { ManagerDb db = new ManagerDb(); String query = "SELECT USU_CODIGO, USU_USUARIO, USU_PASSWORD, USU_NOMBRES, USU_APELLIDOS, USU_CORREO, USU_ROL FROM USUARIOS ORDER BY USU_USUARIO OFFSET @SKIP ROWS FETCH NEXT @TAKE ROWS ONLY"; DataTable tbl = db.ObtenerDatos(query, new SqlParameter("@SKIP", Skip), new SqlParameter("@TAKE", Take)); DataTable tblCount = db.ObtenerDatos("SELECT COUNT(USU_CODIGO) FROM USUARIOS"); List <DTOUsuarios> data = tbl.AsEnumerable().Select(x => new DTOUsuarios { Codigo = x.Field <int>("USU_CODIGO"), Usuario = x.Field <string>("USU_USUARIO"), Password = "******", Nombres = x.Field <string>("USU_NOMBRES"), Apellidos = x.Field <string>("USU_APELLIDOS"), Correo = x.Field <string>("USU_CORREO"), Rol = x.Field <int>("USU_ROL"), Cliente = db.ObtenerDatos("SELECT CLI_CODIGO, CLI_DOCUMENTO, CLI_TIPODOCUMENTO, CLI_FECHANACIMIENTO FROM CLIENTES WHERE USU_CODIGO = @USU_CODIGO", new SqlParameter("@USU_CODIGO", x.Field <int>("USU_CODIGO"))).AsEnumerable().Select(c => new DTOClientes { Codigo = c.Field <int>("CLI_CODIGO"), Documento = c.Field <String>("CLI_DOCUMENTO"), TipoDocumento = c.Field <int>("CLI_TIPODOCUMENTO"), FechaNacimiento = c.Field <DateTime>("CLI_FECHANACIMIENTO") }).FirstOrDefault() }).ToList(); DTODataGrid <DTOUsuarios> dataGrid = new DTODataGrid <DTOUsuarios>(tblCount.AsEnumerable().Select(x => x.Field <int>(0)).FirstOrDefault(), data); return(dataGrid); } catch (Exception ex) { Exception ex1 = ex; while (ex1.InnerException != null) { ex1 = ex1.InnerException; } throw new Exception(ex1.Message); } }
public DTODataGrid <DTOReservas> ListarReservasCliente(int Skip, int Take, int Cliente) { try { ManagerDb db = new ManagerDb(); String query = "SELECT R.RSV_CODIGO, R.USU_CODIGO, R.PEL_CODIGO, R.RSV_ESTADO, R.RSV_FECHACREA, CONCAT(U.USU_NOMBRES, ' ', U.USU_APELLIDOS) USU_NOMBRES, P.PEL_TITULO FROM RESERVAS R INNER JOIN USUARIOS U ON R.USU_CODIGO = U.USU_CODIGO INNER JOIN PELICULAS P ON R.PEL_CODIGO = P.PEL_CODIGO WHERE R.USU_CODIGO = @CLIENTE ORDER BY R.RSV_FECHACREA OFFSET @SKIP ROWS FETCH NEXT @TAKE ROWS ONLY"; DataTable tbl = db.ObtenerDatos(query, new SqlParameter("@SKIP", Skip), new SqlParameter("@TAKE", Take), new SqlParameter("@CLIENTE", Cliente)); DataTable tblCount = db.ObtenerDatos("SELECT COUNT(R.RSV_CODIGO) FROM RESERVAS R INNER JOIN USUARIOS U ON R.USU_CODIGO = U.USU_CODIGO INNER JOIN PELICULAS P ON R.PEL_CODIGO = P.PEL_CODIGO WHERE R.USU_CODIGO = @CLIENTE", new SqlParameter("@CLIENTE", Cliente)); List <DTOReservas> data = tbl.AsEnumerable().Select(x => new DTOReservas { Codigo = x.Field <int>("RSV_CODIGO"), CodigoCliente = x.Field <int>("USU_CODIGO"), CodigoPelicula = x.Field <int>("PEL_CODIGO"), Estado = x.Field <int>("RSV_ESTADO"), FechaReserva = x.Field <DateTime>("RSV_FECHACREA"), Cliente = x.Field <string>("USU_NOMBRES"), Pelicula = x.Field <string>("PEL_TITULO") }).ToList(); DTODataGrid <DTOReservas> dataGrid = new DTODataGrid <DTOReservas>(tblCount.AsEnumerable().Select(x => x.Field <int>(0)).FirstOrDefault(), data); return(dataGrid); } catch (CustomException ex) { throw new CustomException(ex.Message); } catch (Exception ex) { Exception ex1 = ex; while (ex1.InnerException != null) { ex1 = ex1.InnerException; } throw new Exception(ex1.Message); } }
public override DTODataGrid <DTOPeliculas> Listar(int Skip, int Take) { try { ManagerDb db = new ManagerDb(); String query = "SELECT PEL_CODIGO, PEL_TITULO, PEL_DIRECTOR, PEL_COSTOALQUILER, PEL_CANTIDADINVENTARIO FROM PELICULAS ORDER BY PEL_TITULO OFFSET @SKIP ROWS FETCH NEXT @TAKE ROWS ONLY"; DataTable tbl = db.ObtenerDatos(query, new SqlParameter("@SKIP", Skip), new SqlParameter("@TAKE", Take)); DataTable tblCount = db.ObtenerDatos("SELECT COUNT(PEL_CODIGO) FROM PELICULAS"); List <DTOPeliculas> data = tbl.AsEnumerable().Select(x => new DTOPeliculas { Codigo = x.Field <int>("PEL_CODIGO"), Titulo = x.Field <string>("PEL_TITULO"), Director = x.Field <string>("PEL_DIRECTOR"), CostoAlquiler = Convert.ToDouble(x.Field <Object>("PEL_COSTOALQUILER")), CantidaInventario = x.Field <int>("PEL_CANTIDADINVENTARIO"), Actores = db.ObtenerDatos("SELECT A.ACT_CODIGO, A.ACT_NOMBRES FROM ACTORES A INNER JOIN ACTORES_PELICULAS AP ON A.ACT_CODIGO = AP.ACT_CODIGO WHERE AP.PEL_CODIGO = @PEL_CODIGO", new SqlParameter("@PEL_CODIGO", x.Field <int>("PEL_CODIGO"))).AsEnumerable().Select(a => new DTOActores { Codigo = a.Field <int>("ACT_CODIGO"), Nombre = a.Field <String>("ACT_NOMBRES") }).ToList() }).ToList(); DTODataGrid <DTOPeliculas> dataGrid = new DTODataGrid <DTOPeliculas>(tblCount.AsEnumerable().Select(x => x.Field <int>(0)).FirstOrDefault(), data); return(dataGrid); } catch (Exception ex) { Exception ex1 = ex; while (ex1.InnerException != null) { ex1 = ex1.InnerException; } throw new Exception(ex1.Message); } }
public override void Editar(DTOActores data) { try { String Message = String.Empty; if (String.IsNullOrWhiteSpace(data.Nombre)) { Message += "<li>Debe ingresar un valor para el campo nombre</li>"; } if (data.Nombre.Length > 200) { Message += "<li>La longitud máxima para el campo nombre es de 200 caracteres</li>"; } if (String.IsNullOrEmpty(Message)) { ManagerDb db = new ManagerDb(); DataTable tbl = db.ObtenerDatos("SELECT 1 FROM ACTORES WHERE ACT_NOMBRES = @ACTOR AND ACT_CODIGO <> @CODIGO", new SqlParameter("@ACTOR", data.Nombre), new SqlParameter("@CODIGO", data.Codigo)); if (tbl.Rows.Count > 0) { throw new CustomException("<li>El nombre del actor ingresado ya se encuentra registrado en la base de datos, por favor corrigalo e intentelo de nuevo"); } else { String query = "UPDATE ACTORES SET ACT_NOMBRES = @ACT_NOMBRES, ACT_FECHAMODIFICA = CURRENT_TIMESTAMP WHERE ACT_CODIGO = @ACT_CODIGO"; db.Ejecutar(query, new SqlParameter("@ACT_CODIGO", data.Codigo), new SqlParameter("@ACT_NOMBRES", data.Nombre)); } } else { throw new CustomException("<ul>" + Message + "</ul>"); } } catch (CustomException ex) { throw new CustomException(ex.Message); } catch (Exception ex) { Exception ex1 = ex; while (ex1.InnerException != null) { ex1 = ex1.InnerException; } throw new Exception(ex1.Message); } }
/// <summary> /// Obtiene los usuarios almacenados en la base de datos para mostrarse en un combobox /// </summary> /// <returns></returns> public override ICollection <DTOUsuarios> ListarCmb() { try { ManagerDb db = new ManagerDb(); String query = "SELECT USU_CODIGO, USU_USUARIO, CONCAT(USU_NOMBRES, ' ', USU_APELLIDOS) USU_NOMBRE FROM USUARIOS ORDER BY USU_USUARIO"; DataTable tbl = db.ObtenerDatos(query); List <DTOUsuarios> data = tbl.AsEnumerable().Select(x => new DTOUsuarios { Codigo = x.Field <int>("USU_CODIGO"), Usuario = x.Field <string>("USU_USUARIO"), Password = "******", Nombres = x.Field <string>("USU_NOMBRES"), Apellidos = x.Field <string>("USU_APELLIDOS"), Correo = x.Field <string>("USU_CORREO"), Rol = x.Field <int>("USU_ROL"), Cliente = db.ObtenerDatos("SELECT CLI_CODIGO, CLI_DOCUMENTO, CLI_TIPODOCUMENTO, CLI_FECHANACIMIENTO FROM CLIENTES WHERE USU_CODIGO = @USU_CODIGO", new SqlParameter("@USU_CODIGO", x.Field <int>("USU_CODIGO"))).AsEnumerable().Select(c => new DTOClientes { Codigo = c.Field <int>("CLI_CODIGO"), Documento = c.Field <String>("CLI_DOCUMENTO"), TipoDocumento = c.Field <int>("CLI_TIPODOCUMENTO"), FechaNacimiento = c.Field <DateTime>("CLI_FECHANACIMIENTO") }).FirstOrDefault() }).ToList(); return(data); } catch (Exception ex) { Exception ex1 = ex; while (ex1.InnerException != null) { ex1 = ex1.InnerException; } throw new Exception(ex1.Message); } }
/// <summary> /// Autentica los usuarios en el sistema /// </summary> /// <param name="Username">Nombre de usuario a autenticar</param> /// <param name="Password">Contraseña del usuario a autenticar</param> /// <returns>Objeto con la información del usuario que se acaba de autenticar</returns> public DTOUsuarios Login(String Username, String Password) { try { ManagerDb db = new ManagerDb(); String query = "SELECT USU_CODIGO, USU_USUARIO, USU_ROL, USU_NOMBRES, USU_APELLIDOS, USU_PASSWORD, USU_CORREO FROM USUARIOS WHERE USU_USUARIO = @USUARIO"; DataTable tbl = db.ObtenerDatos(query, new SqlParameter("@USUARIO", Username)); DTOUsuarios usuario = new DTOUsuarios(); if (tbl.Rows.Count == 0) { usuario = default(DTOUsuarios); } else { String storedPassword = tbl.Rows[0].Field <string>("USU_PASSWORD"); if (storedPassword == Encriptar.EncriptaContrasena(Password)) { usuario.Codigo = tbl.Rows[0].Field <int>("USU_CODIGO"); usuario.Usuario = tbl.Rows[0].Field <string>("USU_USUARIO"); usuario.Correo = tbl.Rows[0].Field <string>("USU_CORREO"); usuario.Rol = tbl.Rows[0].Field <int>("USU_ROL"); usuario.Nombres = tbl.Rows[0].Field <string>("USU_NOMBRES"); usuario.Apellidos = tbl.Rows[0].Field <string>("USU_APELLIDOS"); } else { usuario = default(DTOUsuarios); } } return(usuario); } catch (Exception ex) { Exception ex1 = ex; while (ex1.InnerException != null) { ex1 = ex1.InnerException; } throw new Exception(ex1.Message); } }
public DTODataGrid <DTOPeliculas> ListarReserva(int Skip, int Take, DTOPeliculas Filtros) { try { ManagerDb db = new ManagerDb(); String filter = String.Empty; if (Filtros.Titulo != "") { filter += " AND P.PEL_TITULO LIKE '%" + Filtros.Titulo + "%' "; } if (Filtros.Director != "") { filter += " AND P.PEL_DIRECTOR LIKE '%" + Filtros.Director + "%' "; } if (Filtros.CostoAlquiler > 0) { filter += " AND P.PEL_COSTOALQUILER <= " + Filtros.CostoAlquiler + " "; } if (Filtros.CantidaInventario > 0) { filter += " AND P.PEL_CANTIDADINVENTARIO <= " + Filtros.CantidaInventario + " "; } if (Filtros.Actores.Count > 0) { foreach (DTOActores actor in Filtros.Actores) { filter += " AND A.ACT_CODIGO = " + actor.Codigo + " "; } } String query = "SELECT DISTINCT P.PEL_CODIGO, P.PEL_TITULO, P.PEL_DIRECTOR, P.PEL_COSTOALQUILER, P.PEL_CANTIDADINVENTARIO FROM PELICULAS P INNER JOIN ACTORES_PELICULAS A ON P.PEL_CODIGO = A.PEL_CODIGO WHERE P.PEL_CANTIDADINVENTARIO > 0 " + filter + " ORDER BY PEL_TITULO OFFSET @SKIP ROWS FETCH NEXT @TAKE ROWS ONLY"; DataTable tbl = db.ObtenerDatos(query, new SqlParameter("@SKIP", Skip), new SqlParameter("@TAKE", Take)); DataTable tblCount = db.ObtenerDatos("SELECT COUNT(P.PEL_CODIGO) FROM PELICULAS P INNER JOIN ACTORES_PELICULAS A ON P.PEL_CODIGO = A.PEL_CODIGO WHERE P.PEL_CANTIDADINVENTARIO > 0 " + filter); List <DTOPeliculas> data = tbl.AsEnumerable().Select(x => new DTOPeliculas { Codigo = x.Field <int>("PEL_CODIGO"), Titulo = x.Field <string>("PEL_TITULO"), Director = x.Field <string>("PEL_DIRECTOR"), CostoAlquiler = Convert.ToDouble(x.Field <Object>("PEL_COSTOALQUILER")), CantidaInventario = x.Field <int>("PEL_CANTIDADINVENTARIO"), Actores = db.ObtenerDatos("SELECT A.ACT_CODIGO, A.ACT_NOMBRES FROM ACTORES A INNER JOIN ACTORES_PELICULAS AP ON A.ACT_CODIGO = AP.ACT_CODIGO WHERE AP.PEL_CODIGO = @PEL_CODIGO", new SqlParameter("@PEL_CODIGO", x.Field <int>("PEL_CODIGO"))).AsEnumerable().Select(a => new DTOActores { Codigo = a.Field <int>("ACT_CODIGO"), Nombre = a.Field <String>("ACT_NOMBRES") }).ToList() }).ToList(); DTODataGrid <DTOPeliculas> dataGrid = new DTODataGrid <DTOPeliculas>(tblCount.AsEnumerable().Select(x => x.Field <int>(0)).FirstOrDefault(), data); return(dataGrid); } catch (Exception ex) { Exception ex1 = ex; while (ex1.InnerException != null) { ex1 = ex1.InnerException; } throw new Exception(ex1.Message); } }
/// <summary> /// Realiza el proceso de modificación de un usuario en la base de datos /// </summary> /// <param name="usuario"></param> public override void Editar(DTOUsuarios usuario) { try { String Message = String.Empty; Message = this.ValidaUsuario(usuario, usuario.Cliente); if (String.IsNullOrEmpty(Message)) { ManagerDb db = new ManagerDb(); DataTable tbl = db.ObtenerDatos("SELECT 1 FROM USUARIOS WHERE USU_USUARIO = @USUARIO AND USU_CODIGO <> @CODIGO", new SqlParameter("@USUARIO", usuario.Usuario), new SqlParameter("@CODIGO", usuario.Codigo)); if (tbl.Rows.Count > 0) { throw new CustomException("<li>El nombre de usuario ingresado ya se encuentra registrado en la base de datos, por favor corrigalo e intentelo de nuevo"); } else { String query = "UPDATE USUARIOS SET USU_USUARIO = @USU_USUARIO, USU_NOMBRES = @USU_NOMBRES, USU_APELLIDOS = @USU_APELLIDOS, USU_CORREO = @USU_CORREO, USU_ROL = @USU_ROL, USU_FECHAMODIFICA = CURRENT_TIMESTAMP WHERE USU_CODIGO = @USU_CODIGO"; db.Ejecutar(query, new SqlParameter("@USU_CODIGO", usuario.Codigo), new SqlParameter("@USU_USUARIO", usuario.Usuario), new SqlParameter("@USU_NOMBRES", usuario.Nombres), new SqlParameter("@USU_APELLIDOS", usuario.Apellidos), new SqlParameter("@USU_CORREO", usuario.Correo), new SqlParameter("@USU_ROL", usuario.Rol)); if (usuario.Rol == 2) { query = "UPDATE CLIENTES SET CLI_DOCUMENTO = @CLI_DOCUMENTO , CLI_TIPODOCUMENTO = @CLI_TIPODOCUMENTO, CLI_FECHANACIMIENTO = @CLI_FECHANACIMIENTO WHERE CLI_CODIGO = @CLI_CODIGO"; db.Ejecutar(query, new SqlParameter("@CLI_DOCUMENTO", usuario.Cliente.Documento), new SqlParameter("@CLI_TIPODOCUMENTO", usuario.Cliente.TipoDocumento), new SqlParameter("@CLI_FECHANACIMIENTO", usuario.Cliente.FechaNacimiento), new SqlParameter("@CLI_CODIGO", usuario.Cliente.Codigo)); } else { db.Ejecutar("DELETE FROM CLIENTES WHERE USU_CODIGO = @USU_CODIGO", new SqlParameter("@USU_CODIGO", usuario.Codigo)); } } } else { throw new CustomException("<ul>" + Message + "</ul>"); } } catch (CustomException ex) { throw new CustomException(ex.Message); } catch (Exception ex) { Exception ex1 = ex; while (ex1.InnerException != null) { ex1 = ex1.InnerException; } throw new Exception(ex1.Message); } }
/// <summary> /// Realiza el proceso de creación de un usuario en la base de datos /// </summary> /// <param name="usuario">Información del usuario que se desea crear</param> public override void Crear(DTOUsuarios usuario) { try { String Message = String.Empty; Message = this.ValidaUsuario(usuario, usuario.Cliente); if (String.IsNullOrEmpty(Message)) { ManagerDb db = new ManagerDb(); DataTable tbl = db.ObtenerDatos("SELECT 1 FROM USUARIOS WHERE USU_USUARIO = @USUARIO", new SqlParameter("@USUARIO", usuario.Usuario)); if (tbl.Rows.Count > 0) { throw new CustomException("<li>El nombre de usuario ingresado ya se encuentra registrado en la base de datos, por favor corrigalo e intentelo de nuevo"); } else { String query = "INSERT INTO USUARIOS (USU_USUARIO, USU_PASSWORD, USU_NOMBRES, USU_APELLIDOS, USU_CORREO, USU_ROL)"; query += "VALUES (@USU_USUARIO, @USU_PASSWORD, @USU_NOMBRES, @USU_APELLIDOS, @USU_CORREO, @USU_ROL);"; db.Ejecutar(query, new SqlParameter("@USU_USUARIO", usuario.Usuario), new SqlParameter("@USU_PASSWORD", Encriptar.EncriptaContrasena(usuario.Password)), new SqlParameter("@USU_NOMBRES", usuario.Nombres), new SqlParameter("@USU_APELLIDOS", usuario.Apellidos), new SqlParameter("@USU_CORREO", usuario.Correo), new SqlParameter("@USU_ROL", usuario.Rol)); if (usuario.Rol == 2) { int codigoUsuario = db.ObtenerDatos("SELECT IDENT_CURRENT('USUARIOS')").AsEnumerable().Select(x => Convert.ToInt32(x.Field <Object>(0))).FirstOrDefault(); query = "INSERT INTO CLIENTES (CLI_DOCUMENTO, CLI_TIPODOCUMENTO, CLI_FECHANACIMIENTO, USU_CODIGO)"; query += "VALUES (@CLI_DOCUMENTO, @CLI_TIPODOCUMENTO, @CLI_FECHANACIMIENTO, @USU_CODIGO)"; db.Ejecutar(query, new SqlParameter("@CLI_DOCUMENTO", usuario.Cliente.Documento), new SqlParameter("@CLI_TIPODOCUMENTO", usuario.Cliente.TipoDocumento), new SqlParameter("@CLI_FECHANACIMIENTO", usuario.Cliente.FechaNacimiento), new SqlParameter("@USU_CODIGO", codigoUsuario)); } } } else { throw new CustomException("<ul>" + Message + "</ul>"); } } catch (CustomException ex) { throw new CustomException(ex.Message); } catch (Exception ex) { Exception ex1 = ex; while (ex1.InnerException != null) { ex1 = ex1.InnerException; } throw new Exception(ex1.Message); } }