示例#1
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)));
            }
        }
示例#2
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());
        }
        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)));
            }
        }
        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)));
            }
        }
示例#5
0
        public ActionResult Register(Usuario usuario, List <InteresseVM> interesses)
        {
            if ((new CoeusProjectContext()).Usuarios.Decrypt().Where(u => u.TxEmail == usuario.TxEmail).Count() > 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotAcceptable, "O e-mail informado já pertence à outro usuário"));
            }

            if (interesses == null || interesses.Count() == 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, "É necessário selecionar ao menos um interesse"));
            }

            usuario.Temas = new List <Tema>();
            foreach (InteresseVM interesse in interesses)
            {
                usuario.Temas.Add(_context.Temas.Where(t => t.NmTema == interesse.NmInteresse).FirstOrDefault());
            }

            usuario.NmFoto = (new FileController()).FormatImage(usuario.NmFoto);
            usuario.Salt   = Salt.GetSalt(0, _context);

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Usuarios.Add(usuario.Encrypt(_context));
                    _context.SaveChanges();

                    AccountFacade.Login(usuario, false);
                    return(Content(Url.Action("Index", "Home")));
                }
                catch (Exception ex)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.NotAcceptable, ErrorFacade.GetErrorMessage(ex)));
                }
            }

            return(new HttpStatusCodeResult(HttpStatusCode.NotAcceptable, ErrorFacade.GetErrorMessage(ModelState)));
        }