Ejemplo n.º 1
0
        public ActionResult EditPartial(Int32 idVideo)
        {
            Video video = _context.Videos.Where(v => v.IdVideo == idVideo).Include(v => v.Objeto).FirstOrDefault();

            if (video == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotAcceptable, "Vídeo não encontrado"));
            }

            Usuario usuarioLogado = AccountFacade.GetLoggedInUser();

            if (video.Objeto.IdUsuario != usuarioLogado.IdUsuario)
            {
                video.Objeto.QtAcessos++;
                _context.Entry(video).State = EntityState.Modified;
                _context.SaveChanges();

                Int32     noAvUsuario      = 0;
                Avaliacao usuarioAvaliacao = video.Objeto.Avaliacoes.Where(a => a.IdUsuario == usuarioLogado.IdUsuario).FirstOrDefault();
                if (usuarioAvaliacao != null)
                {
                    noAvUsuario = usuarioAvaliacao.NoAvaliacao;
                }
                ViewBag.noAvUsuario = noAvUsuario;
            }

            video.Decrypt();
            return(View("_VideoWatchPartial", video));
        }
Ejemplo n.º 2
0
        public ActionResult EditPartial()
        {
            Usuario usuario = AccountFacade.GetLoggedInUser();

            usuario.PwUsuario = String.Empty;
            return(View("_EditPartial", usuario));
        }
        public ActionResult Follow(Int32 idObjeto)
        {
            Objeto objeto = _context.Objetos.Where(o => o.IdObjeto == idObjeto).FirstOrDefault();

            if (objeto == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, "Objeto não encontrado"));
            }

            Usuario usuario = _context.Usuarios.Include(u => u.Seguidores).Where(u => u.IdUsuario == objeto.IdUsuario).FirstOrDefault();

            if (usuario == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, "Usuário não encontrado"));
            }

            if (usuario.Seguidores == null)
            {
                usuario.Seguidores = new List <Usuario>();
            }

            Usuario usuarioLogado = AccountFacade.GetLoggedInUser();

            if (usuario.Seguidores.Where(s => s.IdUsuario == usuarioLogado.IdUsuario).Count() > 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, "Você já segue essa pessoa"));
            }

            usuario.Seguidores.Add(_context.Usuarios.Where(u => u.IdUsuario == usuarioLogado.IdUsuario).FirstOrDefault());

            _context.Entry(usuario).State = EntityState.Modified;
            _context.SaveChanges();

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }
Ejemplo n.º 4
0
        public ActionResult Delete(DataSourceRequest request, Artigo artigo)
        {
            Artigo artigoDel = _context.Artigos.Where(a => a.IdArtigo == artigo.IdArtigo).FirstOrDefault();

            if (artigoDel == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, "Artigo não encontrado"));
            }

            Objeto objeto = _context.Objetos.Include(o => o.Temas).Where(o => o.IdObjeto == artigoDel.IdObjeto).FirstOrDefault();

            if (objeto.Temas != null)
            {
                objeto.Temas.Clear();
            }

            Grupo grupo = _context.Grupos.Include(g => g.Usuarios).Where(g => g.IdObjeto != null && g.IdObjeto == objeto.IdObjeto).FirstOrDefault();

            if (grupo != null)
            {
                if (grupo.Usuarios != null)
                {
                    grupo.Usuarios.Clear();
                }
                _context.Grupos.Remove(grupo);
            }

            _context.Artigos.Remove(artigoDel);
            _context.Objetos.Remove(objeto);

            _context.SaveChanges();

            return(GetArtigos(request, AccountFacade.GetLoggedInUser().IdUsuario));
        }
Ejemplo n.º 5
0
        public ActionResult Avaliacao(Int32 idArtigo, Int32 noAvaliacao)
        {
            Artigo artigo = _context.Artigos.Where(a => a.IdArtigo == idArtigo).Include(a => a.Objeto).FirstOrDefault();

            if (artigo == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.OK));
            }

            Objeto objeto = artigo.Objeto;

            if (objeto.Avaliacoes == null)
            {
                objeto.Avaliacoes = new List <Avaliacao>();
            }

            Usuario   usuarioLogado = AccountFacade.GetLoggedInUser().Encrypt();
            Avaliacao avaliacao     = objeto.Avaliacoes.Where(a => a.IdUsuario == usuarioLogado.IdUsuario).FirstOrDefault();

            if (avaliacao == null)
            {
                objeto.Avaliacoes.Add(new Avaliacao {
                    IdUsuario = usuarioLogado.IdUsuario, NoAvaliacao = noAvaliacao
                });
            }
            else
            {
                avaliacao.NoAvaliacao           = noAvaliacao;
                _context.Entry(avaliacao).State = EntityState.Modified;
            }

            _context.SaveChanges();

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }
Ejemplo n.º 6
0
        public ActionResult AddObjectGroup(Int32 idObjeto)
        {
            Int32        idUsuarioLogado = AccountFacade.GetLoggedInUser().IdUsuario;
            List <Grupo> gruposFilter    = _context.Grupos.Where(g => g.IdObjeto == null &&
                                                                 g.Usuarios.Any(u => u.IdUsuario == idUsuarioLogado)).OrderBy(g => g.NmGrupo).Decrypt();

            Usuario usuarioLogado = AccountFacade.GetLoggedInUser();

            Grupo grupoObj = null;

            while (grupoObj == null)
            {
                grupoObj = _context.Grupos.Include(g => g.Usuarios).Include(g => g.Salt)
                           .Where(g => g.IdObjeto != null && g.IdObjeto == idObjeto).FirstOrDefault();

                _context = new CoeusProjectContext();
            }

            gruposFilter.Add(grupoObj.Decrypt());

            return(Json(gruposFilter.Select(s => new Grupo
            {
                IdGrupo = s.IdGrupo,
                NmGrupo = s.NmGrupo
            })));
        }
Ejemplo n.º 7
0
        public ActionResult EditPartial(Int32 idArtigo)
        {
            Artigo artigo = _context.Artigos.Where(a => a.IdArtigo == idArtigo).FirstOrDefault();

            if (artigo == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotAcceptable, "Artigo não encontrado"));
            }

            Usuario usuarioLogado = AccountFacade.GetLoggedInUser();

            if (artigo.Objeto.IdUsuario != usuarioLogado.IdUsuario)
            {
                artigo.Objeto.QtAcessos++;
                _context.Entry(artigo).State = EntityState.Modified;
                _context.SaveChanges();

                Int32     noAvUsuario      = 0;
                Avaliacao usuarioAvaliacao = artigo.Objeto.Avaliacoes.Where(a => a.IdUsuario == usuarioLogado.IdUsuario).FirstOrDefault();
                if (usuarioAvaliacao != null)
                {
                    noAvUsuario = usuarioAvaliacao.NoAvaliacao;
                }
                ViewBag.noAvUsuario = noAvUsuario;
            }

            artigo.Decrypt();
            return(View("_ArtigoEditPartial", artigo));
        }
Ejemplo n.º 8
0
        public ActionResult Create(String nmObjeto, String txDescricao, String txArtigo, List <InteresseVM> tags)
        {
            try
            {
                if (tags == null || tags.Count == 0)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.NotAcceptable, "É necessário selecionar ao menos 1 tema para o artigo"));
                }

                Usuario usuarioLogado = AccountFacade.GetLoggedInUser();

                List <Objeto> objetos = (new CoeusProjectContext()).Objetos.Where(o => o.IdUsuario == usuarioLogado.IdUsuario).Decrypt();

                if (objetos.Where(o => o.NmObjeto == nmObjeto).Count() > 0)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.OK));
                }

                Artigo artigo = new Artigo()
                {
                    Objeto = new Objeto()
                    {
                        IdUsuario   = usuarioLogado.IdUsuario,
                        Salt        = Salt.GetSalt(),
                        NmObjeto    = nmObjeto,
                        TxDescricao = txDescricao
                    },
                    TxArtigo = txArtigo
                };

                artigo.Objeto.Temas = new List <Tema>();

                foreach (InteresseVM interesse in tags)
                {
                    artigo.Objeto.Temas.Add(_context.Temas.Where(t => t.NmTema == interesse.NmInteresse).FirstOrDefault());
                }

                _context.Artigos.Add(artigo.Encrypt(_context));

                Grupo artigoGrupo = new Grupo()
                {
                    IdObjeto = artigo.IdObjeto,
                    Salt     = Salt.GetSalt(),
                    Usuarios = new List <Usuario> {
                        _context.Usuarios.Where(u => u.IdUsuario == usuarioLogado.IdUsuario).FirstOrDefault()
                    },
                    NmGrupo = nmObjeto
                };

                _context.Grupos.Add(artigoGrupo.Encrypt(_context));
                _context.SaveChanges();
                return(new HttpStatusCodeResult(HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotAcceptable, ErrorFacade.GetErrorMessage(ex)));
            }
        }
Ejemplo n.º 9
0
        public ActionResult Edit(Int32 idGrupo, String nmGrupo, List <Usuario> usuarios)
        {
            try
            {
                Grupo grupo = _context.Grupos.Where(g => g.IdGrupo == idGrupo).Include(g => g.Usuarios).FirstOrDefault().Decrypt();
                if (grupo == null)
                {
                    throw new Exception("Grupo inexistente");
                }

                List <Usuario> usuariosGrupo = grupo.Usuarios.ToList();

                if (String.IsNullOrEmpty(nmGrupo))
                {
                    throw new Exception("Nome inválido para o grupo");
                }

                if (usuarios == null || usuarios.Count() == 0)
                {
                    throw new Exception("É necessário selecionar algum usuário para o grupo");
                }

                grupo.NmGrupo = nmGrupo;

                for (int i = usuariosGrupo.Count() - 1; i >= 0; i--)
                {
                    if (usuarios.Where(u => u.IdUsuario == usuariosGrupo[i].IdUsuario).Count() == 0)
                    {
                        grupo.Usuarios.Remove(usuariosGrupo[i]);
                    }
                }

                for (int i = usuarios.Count() - 1; i >= 0; i--)
                {
                    if (usuariosGrupo.Where(ug => ug.IdUsuario == usuarios[i].IdUsuario).Count() == 0)
                    {
                        Int32 idUsuarioAdded = usuarios[i].IdUsuario;
                        grupo.Usuarios.Add(_context.Usuarios.Where(u => u.IdUsuario == idUsuarioAdded).FirstOrDefault());
                    }
                }

                Usuario usuarioLogado = AccountFacade.GetLoggedInUser();
                if (grupo.Usuarios.Where(u => u.IdUsuario == usuarioLogado.IdUsuario).Count() == 0)
                {
                    grupo.Usuarios.Add(_context.Usuarios.Where(u => u.IdUsuario == usuarioLogado.IdUsuario).FirstOrDefault());
                }

                grupo.Encrypt();
                _context.Entry(grupo).State = EntityState.Modified;
                _context.SaveChanges();
                return(new HttpStatusCodeResult(HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotAcceptable, ErrorFacade.GetErrorMessage(ex)));
            }
        }
Ejemplo n.º 10
0
        public void Join()
        {
            Usuario usuarioLogado = AccountFacade.GetLoggedInUser();

            foreach (Grupo grupo in usuarioLogado.Grupos)
            {
                Groups.Add(Context.ConnectionId, grupo.IdGrupo.ToString());
            }
        }
Ejemplo n.º 11
0
        public ActionResult CreatePartial()
        {
            Artigo artigo = new Artigo()
            {
                Objeto = new Objeto()
                {
                    IdUsuario = AccountFacade.GetLoggedInUser().IdUsuario
                }
            };

            return(View("_ArtigoEditPartial", artigo));
        }
Ejemplo n.º 12
0
        public void JoinObjectChat(Int32 idObject = 0)
        {
            Boolean             changed       = false;
            CoeusProjectContext context       = new CoeusProjectContext();
            Usuario             usuarioLogado = AccountFacade.GetLoggedInUser();

            IQueryable <Grupo> userObjectGroup = context.Grupos.Where(g => g.IdObjeto != null && g.Usuarios.Any(u => u.IdUsuario == usuarioLogado.IdUsuario));

            List <Grupo> gruposList = userObjectGroup.ToList();

            foreach (Grupo grupo in userObjectGroup)
            {
                Groups.Remove(Context.ConnectionId, grupo.IdGrupo.ToString());
            }

            Objeto objeto   = context.Objetos.Where(o => o.IdObjeto == idObject).Include(o => o.Salt).FirstOrDefault().Decrypt();
            Grupo  grupoObj = context.Grupos.Include(g => g.Usuarios).Where(g => g.IdObjeto != null && g.IdObjeto == idObject).FirstOrDefault();

            if (grupoObj == null)
            {
                changed = true;

                grupoObj = new Grupo()
                {
                    IdObjeto = idObject,
                    Salt     = Salt.GetSalt(),
                    NmGrupo  = objeto.NmObjeto
                };

                context.Grupos.Add(grupoObj.Encrypt());
            }

            if (grupoObj.Usuarios == null)
            {
                grupoObj.Usuarios = new List <Usuario>();
            }

            if (grupoObj.Usuarios.Where(u => u.IdUsuario == usuarioLogado.IdUsuario).Count() == 0)
            {
                changed = true;
                grupoObj.Usuarios.Add(context.Usuarios.Where(u => u.IdUsuario == usuarioLogado.IdUsuario).FirstOrDefault());
            }

            if (changed)
            {
                objeto.Encrypt();
                context.Entry(objeto).State = EntityState.Modified;

                context.SaveChanges();
            }

            Groups.Add(Context.ConnectionId, grupoObj.IdGrupo.ToString());
        }
Ejemplo n.º 13
0
        public ActionResult Login()
        {
            (new FileController()).CleanImages(_context);
            Usuario usuarioLogado = AccountFacade.GetLoggedInUser();

            if (usuarioLogado != null)
            {
                //return View("Home/Index");
                return(RedirectToAction("Index", "Home"));
            }

            return(View());
        }
Ejemplo n.º 14
0
        public ActionResult Create(String nmGrupo, List <Usuario> usuarios)
        {
            try
            {
                if (String.IsNullOrEmpty(nmGrupo))
                {
                    throw new Exception("O nome do grupo é obrigatório");
                }

                if (usuarios == null || usuarios.Count() == 0)
                {
                    throw new Exception("É necessário selecionar algum usuário para o grupo");
                }

                Grupo grupo = new Grupo
                {
                    NmGrupo  = nmGrupo,
                    Usuarios = new List <Usuario>(),
                    Salt     = Salt.GetSalt()
                };

                foreach (Usuario usuario in usuarios)
                {
                    Usuario grupoUser = _context.Usuarios.Where(u => u.IdUsuario == usuario.IdUsuario).FirstOrDefault();
                    if (grupoUser == null || grupo.Usuarios.Contains(grupoUser))
                    {
                        continue;
                    }

                    grupo.Usuarios.Add(grupoUser);
                }

                Usuario usuarioLogado = AccountFacade.GetLoggedInUser();
                if (grupo.Usuarios.Where(u => u.IdUsuario == usuarioLogado.IdUsuario).Count() == 0)
                {
                    grupo.Usuarios.Add(_context.Usuarios.Where(u => u.IdUsuario == usuarioLogado.IdUsuario).FirstOrDefault());
                }

                grupo.Encrypt();
                _context.Grupos.Add(grupo);
                _context.SaveChanges();

                return(new HttpStatusCodeResult(HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotAcceptable, ErrorFacade.GetErrorMessage(ex)));
            }
        }
Ejemplo n.º 15
0
        private IEnumerable <ObjetoVM> GetObjetos()
        {
            Usuario             usuarioLogado  = AccountFacade.GetLoggedInUser();
            List <int>          idUsuarioTemas = usuarioLogado.Temas.Select(t => t.IdTema).ToList();
            IQueryable <Objeto> objetos        = _context.Objetos
                                                 .Where(o => o.Temas.Any(t => idUsuarioTemas.Contains(t.IdTema)) ||
                                                        o.IdUsuario == usuarioLogado.IdUsuario);

            IQueryable <Usuario> seguindo = _context.Usuarios.Include(u => u.Objetos)
                                            .Where(u => u.Seguidores.Any(s => s.IdUsuario == usuarioLogado.IdUsuario));

            IQueryable <Objeto> objetosSeguindo = seguindo.SelectMany(s => s.Objetos);

            objetos = objetos.Union(objetosSeguindo).OrderByDescending(o => o.IdObjeto);
            return(objetos.Decrypt().Select(o => new ObjetoVM(o)));
        }
Ejemplo n.º 16
0
        public ActionResult Create(String nmObjeto, String txDescricao, String txUrl, String txUrlPoster, List <InteresseVM> tags)
        {
            try
            {
                if (tags == null || tags.Count == 0)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.NotAcceptable, "É necessário selecionar ao menos 1 tema para o vídeo"));
                }

                Usuario usuarioLogado = AccountFacade.GetLoggedInUser();

                List <Objeto> objetos = (new CoeusProjectContext()).Objetos.Where(o => o.IdUsuario == usuarioLogado.IdUsuario).Decrypt();

                if (objetos.Where(o => o.NmObjeto == nmObjeto).Count() > 0)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.OK));
                }

                Video video = new Video()
                {
                    Objeto = new Objeto()
                    {
                        IdUsuario   = usuarioLogado.IdUsuario,
                        Salt        = Salt.GetSalt(),
                        NmObjeto    = nmObjeto,
                        TxDescricao = txDescricao
                    },
                    TxUrl       = txUrl,
                    TxUrlPoster = (new FileController()).FormatPoster(txUrlPoster)
                };

                video.Objeto.Temas = new List <Tema>();

                foreach (InteresseVM interesse in tags)
                {
                    video.Objeto.Temas.Add(_context.Temas.Where(t => t.NmTema == interesse.NmInteresse).FirstOrDefault());
                }

                _context.Videos.Add(video.Encrypt(_context));
                _context.SaveChanges();
                return(new HttpStatusCodeResult(HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotAcceptable, ErrorFacade.GetErrorMessage(ex)));
            }
        }
Ejemplo n.º 17
0
        public ActionResult RegisterPartial()
        {
            Usuario usuario = AccountFacade.GetLoggedInUser();

            if (usuario != null)
            {
                return(Content("&nbsp;"));
            }

            usuario        = new Usuario();
            usuario.NmFoto = Sequence.GetSequence("foto").ToString();

            String physicalPath = Server.MapPath("~/User_Data/") + usuario.NmFoto + ".png";

            if (System.IO.File.Exists(physicalPath))
            {
                System.IO.File.Delete(physicalPath);
            }

            System.IO.File.Copy(Server.MapPath("~/Images/userNoPhoto.png"), physicalPath);
            return(View("~/Views/Account/_RegisterPartial.cshtml", usuario));
        }
Ejemplo n.º 18
0
        public ActionResult GetGrupoWhereNmGrupoStartsWith(String nmGrupo)
        {
            Usuario usuarioLogado = AccountFacade.GetLoggedInUser();

            List <Grupo> grupos = _context.Grupos.Where(g => g.Usuarios.Any(u => u.IdUsuario == usuarioLogado.IdUsuario) && g.IdObjeto == null)
                                  .Include(g => g.Usuarios).Decrypt();

            if (!String.IsNullOrEmpty(nmGrupo))
            {
                grupos = grupos.Where(g => g.NmGrupo.StartsWith(nmGrupo)).ToList();
            }

            if (grupos == null)
            {
                return(Json("", JsonRequestBehavior.AllowGet));
            }

            return(Json(grupos.Select(g => new
            {
                IdGrupo = g.IdGrupo,
                NmGrupo = g.NmGrupo
            }), JsonRequestBehavior.AllowGet));
        }