public async Task <ActionResult <IEnumerable <Producto> > > GetProducto([FromQuery] int pagina, [FromQuery] int cantidad, [FromQuery] int categoria, [FromHeader] String Authorization)
        {
            string idToken = Authorization.Remove(0, 7);

            usuario = await autenticar.obtener_usuario(idToken);

            List <Producto> producto = new List <Producto>();

            //if (usuario.admin)
            //{
            if (pagina != 0 && cantidad != 0)
            {
                producto = await _context.Producto.Where(c => c.Activo == true).Skip((pagina - 1) * cantidad).Take(cantidad).ToListAsync();
            }
            else
            {
                producto = await _context.Producto.Where(c => c.Activo == true).ToListAsync();
            }

            if (categoria != 0)
            {
                producto = producto.Where(data => data.Activo == true && data.IdCategoria.ToString().Contains(categoria.ToString())).ToList();
            }
            return(producto);
        }
        public async Task <UsuarioFirebase> obtener_usuario(string idToken)
        {
            UsuarioFirebase usuario      = new UsuarioFirebase();
            FirebaseToken   decodedToken = await FirebaseAuth.DefaultInstance.VerifyIdTokenAsync(idToken);

            //Sirve para poner claims a un token
            //var prueba = new Dictionary<string, object>()
            //{
            //{ "admin", true },
            //};
            //await FirebaseAuth.DefaultInstance.SetCustomUserClaimsAsync(decodedToken.Uid, prueba);
            usuario.Uid = decodedToken.Uid;
            var    claims = decodedToken.Claims;
            object isAdmin, isSeller;

            if (claims.TryGetValue("admin", out isAdmin))
            {
                if ((bool)isAdmin)
                {
                    usuario.admin = true;
                }
            }
            if (claims.TryGetValue("seller", out isSeller))
            {
                if ((bool)isSeller)
                {
                    usuario.seller = true;
                }
            }
            return(usuario);
        }
Example #3
0
        public async Task <ActionResult <Orden> > PostOrden(Orden orden, [FromHeader] string authorization)
        {
            string idToken = authorization.Remove(0, 7);

            usuario = await autenticar.obtener_usuario(idToken);

            orden.UsuarioId = usuario.Uid;
            orden.Estado    = "Pendiente";
            orden.Fecha     = DateTime.Now.ToString();
            _context.Orden.Add(orden);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetOrden", new { id = orden.Id }, orden));
        }
Example #4
0
        public async Task <ActionResult <IEnumerable <Orden> > > GetOrdenes([FromHeader] string authorization)
        {
            string idToken = authorization.Remove(0, 7);

            usuario = await autenticar.obtener_usuario(idToken);

            var ordenes = _context.Orden.Where(o => o.UsuarioId == usuario.Uid).ToList();

            foreach (var orden in ordenes)
            {
                orden.LineaDeOrden = _context.LineaDeOrden.Where(l => l.OrdenId == orden.Id).ToList();
            }
            return(ordenes);
        }
Example #5
0
        public async Task <ActionResult <SolicitudDeAfiliacion> > GetSolicitudDeAfiliacion(int id, [FromHeader] String Authorization)
        {
            string idToken = Authorization.Remove(0, 7);

            usuario = await autenticar.obtener_usuario(idToken);

            if (usuario.admin)
            {
                var solicitud = await _context.SolicitudDeAfiliacion.FindAsync(id);

                return(solicitud);
            }
            return(NotFound());
        }
        public async Task <ActionResult <IEnumerable <Deseo> > > GetListDeseos([FromHeader] String Authorization)
        {
            string idToken = Authorization.Remove(0, 7);

            usuario = await autenticar.obtener_usuario(idToken);

            List <Producto> productos = new List <Producto>();
            var             deseos    = _context.Deseo.Where(d => d.UsuarioId == usuario.Uid).ToList();

            foreach (Deseo deseo in deseos)
            {
                Producto producto = _context.Producto.Where(p => p.Id == deseo.ProductoId).FirstOrDefault();
                productos.Add(producto);
            }
            return(deseos);
        }
Example #7
0
        public async Task <ActionResult <SolicitudDeAfiliacion> > PostSolicitudDeAfiliacion(SolicitudDeAfiliacion solicitudDeAfiliacion, [FromHeader] string Authorization)
        {
            string idToken = Authorization.Remove(0, 7);

            usuario = await autenticar.obtener_usuario(idToken);

            string[] valores = imagenes(solicitudDeAfiliacion, 0);;
            solicitudDeAfiliacion.PagareUrl             = valores[0];
            solicitudDeAfiliacion.ReciboAguaUrl         = valores[1];
            solicitudDeAfiliacion.ReciboLuzUrl          = valores[2];
            solicitudDeAfiliacion.ReciboTelefonoUrl     = valores[3];
            solicitudDeAfiliacion.ReferenciaBancariaUrl = valores[4];
            solicitudDeAfiliacion.IdUsuario             = usuario.Uid;
            _context.SolicitudDeAfiliacion.Add(solicitudDeAfiliacion);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetSolicitudDeAfiliacion", new { id = solicitudDeAfiliacion.Id }, solicitudDeAfiliacion));
        }
        public async Task <ActionResult <Deseo> > PostDeseo(Deseo deseo, [FromHeader] string Authorization)
        {
            string idToken = Authorization.Remove(0, 7);

            usuario = await autenticar.obtener_usuario(idToken);

            var deseoExistente = _context.Deseo.Where(d => d.ProductoId == deseo.ProductoId && d.UsuarioId == usuario.Uid).FirstOrDefault();

            if (deseoExistente != null)
            {
                throw new Exception("Este producto ya fue agregado a la lista de deseos");
            }

            _context.Deseo.Add(deseo);
            deseo.UsuarioId = usuario.Uid;
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetDeseo", new { id = deseo.Id }, deseo));
        }
Example #9
0
        public async Task <IActionResult> PostSolicitudDeAfiliacion(int id, string estado, [FromHeader] string Authorization)
        {
            string idToken = Authorization.Remove(0, 7);

            usuario = await autenticar.obtener_usuario(idToken);

            var solicitudDeAfiliacion = new SolicitudDeAfiliacion();

            solicitudDeAfiliacion = await _context.SolicitudDeAfiliacion.Where(c => c.Id == id).FirstOrDefaultAsync();

            if (id != solicitudDeAfiliacion.Id)
            {
                return(BadRequest());
            }
            //if (estado == "Aprobado" && solicitudDeAfiliacion.Comentario == "")
            if (estado == "Aprobado")
            {
                solicitudDeAfiliacion.Estado     = "Aprobado";
                solicitudDeAfiliacion.Comentario = "Bienviendo nuevo vendedor, es un placer contar contigo.";
            }
            else if (solicitudDeAfiliacion.Estado == "Denegado" && solicitudDeAfiliacion.Comentario == "")
            {
                solicitudDeAfiliacion.Comentario = "Su solicitud ha sido denegada";
            }

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SolicitudDeAfiliacionExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Example #10
0
        public async Task <IActionResult> PutSolicitudDeAfiliacion(int id, SolicitudDeAfiliacion solicitudDeAfiliacion, [FromHeader] string Authorization)
        {
            string idToken = Authorization.Remove(0, 7);

            usuario = await autenticar.obtener_usuario(idToken);

            if (id != solicitudDeAfiliacion.Id)
            {
                return(BadRequest());
            }
            if (solicitudDeAfiliacion.Estado == "Aprobado" && solicitudDeAfiliacion.Comentario == "")
            {
                solicitudDeAfiliacion.Comentario = "Bienviendo nuevo vendedor, es un placer contar contigo.";
            }
            string[] valores = imagenes(solicitudDeAfiliacion, 1);;
            solicitudDeAfiliacion.PagareUrl             = valores[0];
            solicitudDeAfiliacion.ReciboAguaUrl         = valores[1];
            solicitudDeAfiliacion.ReciboLuzUrl          = valores[2];
            solicitudDeAfiliacion.ReciboTelefonoUrl     = valores[3];
            solicitudDeAfiliacion.ReferenciaBancariaUrl = valores[4];
            _context.Entry(solicitudDeAfiliacion).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SolicitudDeAfiliacionExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Example #11
0
        public async Task <ActionResult <IEnumerable <SolicitudDeAfiliacion> > > GetSolicitudDeAfiliacion([FromQuery] int pagina, [FromQuery] int cantidad, [FromQuery] string estado, [FromHeader] string Authorization)
        {
            string idToken = Authorization.Remove(0, 7);

            usuario = await autenticar.obtener_usuario(idToken);

            List <SolicitudDeAfiliacion> solicitud = new List <SolicitudDeAfiliacion>();

            if (usuario.admin)
            {
                if (pagina != 0 && cantidad != 0)
                {
                    if (estado != null)
                    {
                        solicitud = await _context.SolicitudDeAfiliacion.Where(c => c.Estado == estado).Skip((pagina - 1) * cantidad).Take(cantidad).ToListAsync();
                    }
                    else
                    {
                        solicitud = await _context.SolicitudDeAfiliacion.Skip((pagina - 1) *cantidad).Take(cantidad).ToListAsync();
                    }
                }
                else
                {
                    if (estado != null)
                    {
                        solicitud = await _context.SolicitudDeAfiliacion.Where(c => c.Estado == estado).ToListAsync();
                    }
                    else
                    {
                        solicitud = await _context.SolicitudDeAfiliacion.ToListAsync();
                    }
                }
            }
            else
            {
                solicitud.Add(await _context.SolicitudDeAfiliacion.Where(c => c.IdUsuario == usuario.Uid).OrderByDescending(c => c.Id).FirstOrDefaultAsync());
            }
            return(solicitud);
        }