예제 #1
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
            })));
        }
예제 #2
0
        public static List <Mensagem> Decrypt(this IQueryable <Mensagem> mensagens, CoeusProjectContext Context = null)
        {
            if (mensagens == null)
            {
                return(new List <Mensagem>());
            }
            if (mensagens.Count() == 0)
            {
                return(mensagens.ToList());
            }

            mensagens = mensagens.OrderBy(m => m.Usuario.NmPessoa);

            List <Mensagem> mensagensRet = mensagens.ToList();

            Usuario encUsuario = mensagensRet[0].Usuario;
            Usuario decUsuario = mensagensRet[0].Usuario.Decrypt();

            if (Context == null)
            {
                Context = new CoeusProjectContext();
            }

            foreach (Mensagem mensagem in mensagensRet)
            {
                if (mensagem.Usuario.NmPessoa != encUsuario.NmPessoa)
                {
                    encUsuario = mensagem.Usuario;
                    decUsuario = mensagem.Usuario.Decrypt();
                }

                mensagem.Decrypt(0, decUsuario, Context);
            }
            return(mensagensRet);
        }
예제 #3
0
        public ObjetoVM(Objeto objeto, CoeusProjectContext context = null)
        {
            Avaliacoes  = objeto.Avaliacoes;
            IdObjeto    = objeto.IdObjeto;
            IdUsuario   = objeto.IdUsuario;
            NmObjeto    = objeto.NmObjeto;
            Temas       = objeto.Temas;
            TxDescricao = objeto.TxDescricao;
            Usuario     = objeto.Usuario;

            if (context == null)
            {
                context = new CoeusProjectContext();
            }

            Video video = context.Videos.Where(v => v.IdObjeto == objeto.IdObjeto).FirstOrDefault();

            if (video == null)
            {
                Artigo artigo = context.Artigos.Where(v => v.IdObjeto == objeto.IdObjeto).FirstOrDefault();
                IdArtigo = artigo.IdArtigo;
                TpObjeto = TipoObjeto.Artigo;
            }
            else
            {
                IdVideo  = video.IdVideo;
                TpObjeto = TipoObjeto.Video;
            }
        }
예제 #4
0
        public void CleanImages(CoeusProjectContext Context = null)
        {
            if (Context == null)
            {
                Context = new CoeusProjectContext();
            }

            Int32 idLastImage          = Sequence.GetSequence("foto", Context);
            Int32 idLastUserVideoImage = 0;

            Usuario lastUser = Context.Usuarios.OrderByDescending(u => u.NmFoto).FirstOrDefault();

            if (lastUser == null)
            {
                return;
            }

            idLastUserVideoImage = Convert.ToInt32(lastUser.NmFoto.Replace(".png", "").Replace(".jpg", "").Replace(".bmp", ""));

            Video lastVideo = Context.Videos.OrderByDescending(v => v.TxUrlPoster).FirstOrDefault();

            if (lastVideo != null)
            {
                Int32 idPoster = Convert.ToInt32(lastVideo.TxUrlPoster.Replace(".png", "").Replace(".jpg", "").Replace(".bmp", ""));

                if (idPoster > idLastUserVideoImage)
                {
                    idLastUserVideoImage = idPoster;
                }
            }

            for (Int32 i = idLastUserVideoImage; i < idLastImage; i++)
            {
                String LPath = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "User_Data");

                String nmImgFile = Path.Combine(LPath, (i.ToString() + ".png"));
                if (System.IO.File.Exists(nmImgFile))
                {
                    System.IO.File.Delete(nmImgFile);
                    continue;
                }

                nmImgFile = Path.Combine(LPath, (i.ToString() + ".jpg"));
                if (System.IO.File.Exists(nmImgFile))
                {
                    System.IO.File.Delete(nmImgFile);
                    continue;
                }

                nmImgFile = Path.Combine(LPath, (i.ToString() + ".bmp"));
                if (System.IO.File.Exists(nmImgFile))
                {
                    System.IO.File.Delete(nmImgFile);
                    continue;
                }
            }

            Sequence.ResetSequence("foto", (idLastUserVideoImage + 1), Context);
        }
예제 #5
0
        public static List <Objeto> Decrypt(this IQueryable <Objeto> objetos)
        {
            CoeusProjectContext _context   = new CoeusProjectContext();
            List <Objeto>       objetosRet = new List <Objeto>();

            foreach (Objeto objeto in objetos)
            {
                objetosRet.Add(objeto.Decrypt(_context));
            }

            return(objetosRet);
        }
예제 #6
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());
        }
예제 #7
0
        public static List <Usuario> Decrypt(this IQueryable <Usuario> usuarios, CoeusProjectContext context = null)
        {
            if (context == null)
            {
                context = new CoeusProjectContext();
            }

            List <Usuario> usuariosRet = new List <Usuario>();

            foreach (Usuario usuario in usuarios)
            {
                usuariosRet.Add(usuario.Decrypt(context));
            }
            return(usuariosRet);
        }
예제 #8
0
        public static Usuario GetLoggedInUser(CoeusProjectContext context = null)
        {
            String idUsuario = HttpContext.Current.User.Identity.Name;

            if (!String.IsNullOrEmpty(idUsuario) && Convert.ToInt32(idUsuario) > 0)
            {
                Int32 idUsuarioInteger = Convert.ToInt32(idUsuario);

                context = context ?? new CoeusProjectContext();

                Usuario usuario = context.Usuarios.Where(u => u.IdUsuario == idUsuarioInteger)
                                  .Include(u => u.Grupos)
                                  .Include(u => u.Temas).FirstOrDefault();

                if (usuario == null)
                {
                    AccountFacade.Logoff();
                    return(null);
                }
                return(usuario.Decrypt());
            }

            return(null);
        }
예제 #9
0
 public static List <Usuario> Decrypt(this IEnumerable <Usuario> usuarios, CoeusProjectContext context = null)
 {
     return(usuarios.AsQueryable <Usuario>().Decrypt(context));
 }