public ProductoResponse GetProducto(int id)
        {
            ProductoResponse pRes = new ProductoResponse();

            try
            {
                using (ServiciosContext context = new ServiciosContext())
                {
                    var producto = context.Productos.Where(x => x.Id == id).FirstOrDefault();

                    if (producto != null)
                    {
                        Mapper(pRes, producto);
                    }

                    else
                    {
                        pRes.Mensaje = "No se ha encontrado ningun producto con el identificador " + id;
                    }
                }
            }
            catch (Exception ex)
            {
                pRes.Mensaje = ex.Message;
            }

            return(pRes);
        }
        public UsuarioResponse Login(Usuarios usuario)
        {
            UsuarioResponse uRes = new UsuarioResponse();

            try
            {
                using (ServiciosContext context = new ServiciosContext())
                {
                    var user = context.Usuarios.Where(u => u.Usuario == usuario.Usuario && u.Clave == usuario.Clave).FirstOrDefault();

                    if (user == null)
                    {
                        uRes.Mensaje = "Nombre de usuario y / o contraseña incorrectos";
                    }
                    else
                    {
                        user.Logueado = true;
                        context.SaveChanges();
                        Mapper(uRes, user);
                        LoggerData.InsertLogger(user.Id, "Login");
                    }
                }
            }
            catch (Exception ex)
            {
                uRes.Mensaje = ex.Message;
            }

            return(uRes);
        }
        public UsuarioResponse Registro(Usuarios usuario)
        {
            UsuarioResponse uRes = new UsuarioResponse();

            try
            {
                using (ServiciosContext context = new ServiciosContext())
                {
                    var user = context.Usuarios.Where(u => u.Usuario == usuario.Usuario)
                               .Select(x => new Usuarios
                    {
                        Usuario = x.Usuario
                    }).FirstOrDefault();

                    if (user != null)
                    {
                        uRes.Mensaje = "El nombre de usuario ya se encuentra en uso";
                    }
                    else
                    {
                        context.Usuarios.Add(usuario);
                        context.SaveChanges();
                        Mapper(uRes, usuario, false, "Usuario registrado correctamente");
                    }
                }
            }
            catch (Exception ex)
            {
                uRes.Mensaje = ex.Message;
            }

            return(uRes);
        }
        public static void InsertLogger(int idUsuario, string accion)
        {
            Logger logger = new Logger();

            try
            {
                using (ServiciosContext context = new ServiciosContext())
                {
                    logger.IdUsuario = idUsuario;
                    logger.Accion    = accion;
                    logger.Fecha     = DateTime.Now;

                    context.Logger.Add(logger);
                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public CompraResponse AltaCompra(Compras compra)
        {
            CompraResponse cRes = new CompraResponse();

            try
            {
                using (ServiciosContext context = new ServiciosContext())
                {
                    context.Compras.Add(compra);
                    context.SaveChanges();
                    cRes.Mensaje = "La compra se registro correctamente";
                    LoggerData.InsertLogger(compra.IdUsuario, "Compra");
                }
            }
            catch (Exception ex)
            {
                cRes.Mensaje = ex.Message;
            }

            return(cRes);
        }
        public ProductoResponse AltaProducto(Productos producto)
        {
            ProductoResponse pRes = new ProductoResponse();

            byte[] byteImg = Encoding.UTF8.GetBytes(producto.Imagen);
            producto.Imagen = Convert.ToBase64String(byteImg);

            try
            {
                using (ServiciosContext context = new ServiciosContext())
                {
                    context.Productos.Add(producto);
                    context.SaveChanges();
                    Mapper(pRes, producto, "Producto dado de alta");
                }
            }
            catch (Exception ex)
            {
                pRes.Mensaje = ex.Message;
            }

            return(pRes);
        }
        public UsuarioResponse Logout(Usuarios usuario)
        {
            UsuarioResponse uRes = new UsuarioResponse();

            try
            {
                using (ServiciosContext context = new ServiciosContext())
                {
                    var user = context.Usuarios.Where(u => u.Usuario == usuario.Usuario).FirstOrDefault();

                    user.Logueado = false;
                    context.SaveChanges();
                    Mapper(uRes, user);
                    LoggerData.InsertLogger(user.Id, "Logout");
                }
            }
            catch (Exception ex)
            {
                uRes.Mensaje = ex.Message;
            }

            return(uRes);
        }
        public List <ProductoResponse> GetProductos()
        {
            List <ProductoResponse> listadoProductos = new List <ProductoResponse>();
            ProductoResponse        pRes;

            try
            {
                using (ServiciosContext context = new ServiciosContext())
                {
                    var productos = context.Productos.ToList();

                    if (productos != null)
                    {
                        foreach (var producto in productos)
                        {
                            pRes = new ProductoResponse();
                            Mapper(pRes, producto);
                            listadoProductos.Add(pRes);
                        }
                    }
                    else
                    {
                        pRes         = new ProductoResponse();
                        pRes.Mensaje = "Sin productos";
                        listadoProductos.Add(pRes);
                    }
                }
            }
            catch (Exception ex)
            {
                pRes         = new ProductoResponse();
                pRes.Mensaje = ex.Message;
                listadoProductos.Add(pRes);
            }

            return(listadoProductos);
        }
 public VideojuegosServices(ServiciosContext context) // Constructor: ahora ya podemos usar la BBDD context
 {
     _context = context;
 }
        public List <CompraResponse> GetCompras(int idUsuario)
        {
            List <CompraResponse> listadoCompras = new List <CompraResponse>();
            CompraResponse        cRes;

            try
            {
                using (ServiciosContext context = new ServiciosContext())
                {
                    if (idUsuario == 0)
                    {
                        var compras = (from c in context.Compras
                                       join u in context.Usuarios
                                       on c.IdUsuario equals u.Id
                                       join p in context.Productos
                                       on c.IdProducto equals p.Id
                                       select new CompraResponse
                        {
                            IdCompra = c.Id,
                            Producto = p.Descripcion,
                            Usuario = u.Usuario,
                            Precio = (double)p.Precio
                        }).ToList();

                        foreach (var compra in compras)
                        {
                            listadoCompras.Add(compra);
                        }
                    }
                    else
                    {
                        var compras = (from c in context.Compras
                                       join u in context.Usuarios
                                       on c.IdUsuario equals u.Id
                                       join p in context.Productos
                                       on c.IdProducto equals p.Id
                                       where c.IdUsuario == idUsuario
                                       select new CompraResponse
                        {
                            IdCompra = c.Id,
                            Producto = p.Descripcion,
                            Usuario = u.Usuario,
                            Precio = (double)p.Precio
                        }).ToList();

                        foreach (var compra in compras)
                        {
                            listadoCompras.Add(compra);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                cRes         = new CompraResponse();
                cRes.Mensaje = ex.Message;
                listadoCompras.Add(cRes);
            }

            return(listadoCompras);
        }