public JsonResult SalvarPublicacaoImagem()
        {
            DAOPublicacaoImagem daoPublicacaoImagem = null;
            Imagem             novaImagem           = null;
            Usuario            usuario              = null;
            string             pathImagem           = null;
            PublicacaoImagem   novaPublicacaoImagem = null;
            EtiquetaPublicacao etiqueta             = null;

            try
            {
                usuario = (Usuario)Session["Usuario"];

                if (System.Web.HttpContext.Current.Request.Files.AllKeys.Any())
                {
                    HttpPostedFile postedFile = System.Web.HttpContext.Current.Request.Files["fileImagemPublicacao"];
                    Image          imagem     = Bitmap.FromStream(postedFile.InputStream);
                    pathImagem = @"\ImagensPublicacoes\" + postedFile.FileName;
                    imagem.Save(System.Web.HttpContext.Current.Server.MapPath("~") + @"\ImagensPublicacoes\" + postedFile.FileName);
                }
                else
                {
                    throw new Exception();
                }

                novaImagem            = new Imagem();
                novaImagem.Dono       = usuario;
                novaImagem.PathImagem = pathImagem;
                novaImagem.Legenda    = System.Web.HttpContext.Current.Request.Form["txtLegenda"];

                novaPublicacaoImagem        = new PublicacaoImagem();
                novaPublicacaoImagem.Autor  = usuario;
                novaPublicacaoImagem.Imagem = novaImagem;

                string etiquetas = System.Web.HttpContext.Current.Request.Form["etiquetas"].ToString();
                foreach (string tagName in etiquetas.Split(','))
                {
                    etiqueta      = new EtiquetaPublicacao();
                    etiqueta.Nome = tagName;
                    novaPublicacaoImagem.Etiquetas.Add(etiqueta);
                }

                daoPublicacaoImagem = new DAOPublicacaoImagem();
                if (daoPublicacaoImagem.IncluirPublicacaoImagem(novaPublicacaoImagem))
                {
                    return(Json("Aew salvou!"));
                }
                else
                {
                    return(Json("Deu ruim pra salvar a imagem hein..."));
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public void RegistrarVisualizacaoImagem(string id)
        {
            DAOPublicacaoImagem daoPublicacaoImagem = null;
            int idPublicacaoImagem;

            try
            {
                if (Int32.TryParse(id, out idPublicacaoImagem))
                {
                    daoPublicacaoImagem = new DAOPublicacaoImagem();
                    daoPublicacaoImagem.IncrementarVisualizacoes(idPublicacaoImagem);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public ActionResult AbrirPublicacaoImagem(int id)
        {
            Usuario                 usuario                 = null;
            DAOPublicacaoImagem     daoPublicacaoImagem     = null;
            DAOUsuarioProfissional  daoUsuarioProfissional  = null;
            DAOComentarioPublicacao daoComentarioPublicacao = null;
            DAOEtiquetaPublicacao   daoEtiquetaPublicacao   = null;
            PublicacaoImagem        publicacaoImagem        = null;
            string masterName = null;

            try
            {
                daoPublicacaoImagem = new DAOPublicacaoImagem();
                publicacaoImagem    = daoPublicacaoImagem.ObterPublicacaoImagem(id);

                daoUsuarioProfissional = new DAOUsuarioProfissional();
                publicacaoImagem.Autor = daoUsuarioProfissional.ObterUsuarioProfissional(publicacaoImagem.Autor.Id);

                daoComentarioPublicacao = new DAOComentarioPublicacao();
                daoPublicacaoImagem.PopularComentarios(publicacaoImagem);

                daoEtiquetaPublicacao = new DAOEtiquetaPublicacao();
                daoEtiquetaPublicacao.PopularEtiquetas(publicacaoImagem);

                usuario = (Usuario)Session["Usuario"];
                if (usuario == null)
                {
                    if (publicacaoImagem != null)
                    {
                        return(View("PublicacaoImagemVisitante", "_LayoutVisitante", publicacaoImagem));
                    }
                    else
                    {
                        return(Json("Deu ruim aqui")); // Tratar este caso.
                    }
                }

                switch (usuario.Perfil)
                {
                case Usuario.TipoPerfil.UsuarioParticular:
                    masterName = "_LayoutUsuarioParticular";
                    break;

                case Usuario.TipoPerfil.UsuarioProfissional:
                    masterName = "_LayoutUsuarioProfissional";
                    break;

                default:
                    masterName = "_LayoutVisitante";
                    break;
                }

                if (publicacaoImagem != null)
                {
                    return(View("PublicacaoImagem", masterName, publicacaoImagem));
                }
                else
                {
                    return(Json("Deu ruim aqui")); // Tratar esse caso.
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }