Exemplo n.º 1
0
        public async Task <IActionResult> Index()
        {
            var userTokens = HttpContext.Session.GetInt32("TokenUser");

            if (string.IsNullOrEmpty(userTokens.ToString()))
            {
                return(RedirectToAction("Redirect", "Login"));
            }
            var amigos = await _context.Amigos.Where(m => m.Idenvia == userTokens).ToListAsync();

            var listOfListCom  = new List <List <ComentariosViewModel> >();
            var Listdatoamigos = new List <Usuarios>();

            foreach (Amigos idp in amigos)
            {
                var datoamigos           = _context.Usuarios.FirstOrDefault(m => m.Id == idp.Idrecibe);
                var publicacionesdeltipo = await _context.Publicaciones.Where(m => m.Idusuario == idp.Idrecibe).OrderByDescending(a => a.Fecha).ToListAsync();

                foreach (Publicaciones pub in publicacionesdeltipo)
                {
                    var comentarios = _context.Comentario.Where(b => (b.Idpublicacion == pub.Id)).ToList();
                    List <ComentariosViewModel> cometariosview = new List <ComentariosViewModel>();

                    foreach (var Comento in comentarios)
                    {
                        var sabercomentarista = await _context.Usuarios.FirstOrDefaultAsync(m => m.Id == Comento.Idusuario);

                        var cvms = _mapper.Map <ComentariosViewModel>(Comento);
                        cvms.Comentarista = sabercomentarista.Usuario;

                        cometariosview.Add(cvms);
                    }
                    listOfListCom.Add(cometariosview);
                }

                Listdatoamigos.Add(datoamigos);
            }

            var pubs = _context.Publicaciones2.FromSqlRaw("SELECT I.id,I.contenido,I.idusuario, Nombre, Apellido, Usuario,Fecha FROM Usuarios O JOIN Publicaciones I ON O.id = I.idusuario JOIN Amigos P ON P.idrecibe = I.idusuario where P.idenvia ={0} ORDER BY i.Fecha desc", userTokens).ToList();

            AmigosViewModel vms = new AmigosViewModel();

            vms.idusuario   = userTokens.GetValueOrDefault();
            vms.Amigos      = Listdatoamigos;
            vms.publicacion = pubs;
            vms.comentario  = listOfListCom;

            return(View(vms));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Index(AmigosViewModel vms, string submit, string coment)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }
            var userTokens = HttpContext.Session.GetInt32("TokenUser");

            vms.idusuario = userTokens.GetValueOrDefault();
            switch (submit)
            {
            case "AñadirA":
                var añadir = await _context.Usuarios.FirstOrDefaultAsync(a => a.Usuario == vms.Añadiruser.Trim());

                var añadiramigo = new Amigos();
                añadiramigo.Idenvia  = vms.idusuario;
                añadiramigo.Idrecibe = añadir.Id;

                await _context.Amigos.AddAsync(añadiramigo);

                await _context.SaveChangesAsync();

                break;

            case "BorrarAmix":
                var Borrar = await _context.Amigos.FirstOrDefaultAsync(a => a.Idenvia == vms.idusuario && a.Idrecibe == vms.BorrarAmix);

                if (Borrar != null)
                {
                    _context.Amigos.Remove(Borrar);
                    await _context.SaveChangesAsync();
                }


                break;

            case "Comentar":
                if (coment != null)
                {
                    vms.nuevoCom.Contenido = coment;
                    vms.nuevoCom.Idusuario = userTokens;
                    _context.Comentario.Add(vms.nuevoCom);
                    await _context.SaveChangesAsync();
                }
                break;

            default:
                throw new Exception();
            }

            var amigos = await _context.Amigos.Where(m => m.Idenvia == userTokens).ToListAsync();

            var listOfListCom  = new List <List <ComentariosViewModel> >();
            var Listdatoamigos = new List <Usuarios>();

            foreach (Amigos idp in amigos)
            {
                var datoamigos           = _context.Usuarios.FirstOrDefault(m => m.Id == idp.Idrecibe);
                var publicacionesdeltipo = await _context.Publicaciones.Where(m => m.Idusuario == idp.Idrecibe).OrderByDescending(a => a.Fecha).ToListAsync();

                foreach (Publicaciones pub in publicacionesdeltipo)
                {
                    var comentarios = _context.Comentario.Where(b => (b.Idpublicacion == pub.Id)).ToList();
                    List <ComentariosViewModel> cometariosview = new List <ComentariosViewModel>();

                    foreach (var Comento in comentarios)
                    {
                        var sabercomentarista = await _context.Usuarios.FirstOrDefaultAsync(m => m.Id == Comento.Idusuario);

                        var cvms = _mapper.Map <ComentariosViewModel>(Comento);
                        cvms.Comentarista = sabercomentarista.Usuario;

                        cometariosview.Add(cvms);
                    }
                    listOfListCom.Add(cometariosview);
                }

                Listdatoamigos.Add(datoamigos);
            }

            var pubs = _context.Publicaciones2.FromSqlRaw("SELECT I.id,I.contenido,I.idusuario, Nombre, Apellido, Usuario,Fecha FROM Usuarios O JOIN Publicaciones I ON O.id = I.idusuario JOIN Amigos P ON P.idrecibe = I.idusuario where P.idenvia ={0} ORDER BY i.Fecha desc", userTokens).ToList();

            vms.Amigos      = Listdatoamigos;
            vms.publicacion = pubs;
            vms.comentario  = listOfListCom;

            return(View(vms));
        }