Esempio n. 1
0
        public async Task <FullPublicacionViewModel> Index(int id)
        {
            var publicacion = await getById(id);

            if (publicacion == null)
            {
                return(null);
            }
            else
            {
                var comentarios = await _context.Comentarios.Where(c => c.IdPost == id).OrderByDescending(a => a.Id).ToListAsync();

                var comentariosId = await _context.Comentarios.Where(c => c.IdPost == id).Select(s => s.Id).ToListAsync();


                int[] idPost = comentariosId.ToArray();

                var replies = new List <Replies>();
                for (var i = 0; i < idPost.Length; i++)
                {
                    replies.AddRange(await _context.Replies.Where(c => c.IdComentario == idPost[i]).ToListAsync());
                }

                var viewModel = new FullPublicacionViewModel
                {
                    Publicacion = publicacion,
                    Comentarios = comentarios,
                    Replies     = replies
                };
                return(viewModel);
            }
        }
Esempio n. 2
0
        public async Task <IActionResult> addComentario(int id, FullPublicacionViewModel viewModel)
        {
            if (viewModel.Comentario != null)
            {
                var usuario = await _context.Usuario.FirstOrDefaultAsync(c => c.UserName == User.Identity.Name);

                if (await _repository.AddComentario(usuario.Foto, User.Identity.Name, id, viewModel))
                {
                    return(RedirectToAction("Index", new { id = id }));
                }
            }
            return(RedirectToAction("Index", new { id = id }));
        }
Esempio n. 3
0
 public async Task <IActionResult> addReply(int publ, int id, FullPublicacionViewModel viewModel)
 {
     if (viewModel.Reply != null)
     {
         if (await _repository.addReply(User.Identity.Name, id, viewModel))
         {
             return(RedirectToAction("Index", new { id = publ }));
         }
         else
         {
             return(RedirectToAction("Index", new { id = publ }));
         }
     }
     return(RedirectToAction("Index", new { id = publ }));
 }
Esempio n. 4
0
        public async Task <bool> addReply(string name, int id, FullPublicacionViewModel viewModel)
        {
            if (viewModel.Reply != null)
            {
                var dto = new RepliesDTO
                {
                    IdComentario    = id,
                    HoraPublicacion = DateTime.Now.ToString("dd/MM/yyyy hh:mm tt"),
                    Foto            = name,
                    Texto           = viewModel.Reply,
                    UserId          = name
                };
                var final = _mapper.Map <Replies>(dto);
                _context.Replies.Add(final);
                await _context.SaveChangesAsync();

                return(true);
            }
            return(false);
        }
Esempio n. 5
0
        public async Task <bool> AddComentario(string foto, string name, int id, FullPublicacionViewModel viewModel)
        {
            if (viewModel.Comentario != null)
            {
                var vm = new ComentarioViewModel
                {
                    IdPost     = id,
                    UserComm   = name,
                    Comentario = viewModel.Comentario,
                    Foto       = foto
                };
                var dto   = _mapper.Map <ComentarioDTO>(vm);
                var final = _mapper.Map <Comentarios>(dto);
                _context.Comentarios.Add(final);
                await _context.SaveChangesAsync();

                return(true);
            }
            else
            {
                return(false);
            }
        }