public PublicacaoResponse Carregar(int SiteId, int IdiomaId, int PublicacaoId, int UsuarioId, bool FiltrarPrivacidade = true)
        {
            PublicacaoResponse resposta = new PublicacaoResponse();
            Publicacao publicacao;

            try
            {
                using (ConexaoDB objetoConexao = new ConexaoDB())
                {
                    objetoConexao.AdicionarParametro("@SiteId", SqlDbType.Int, SiteId);
                    objetoConexao.AdicionarParametro("@IdiomaId", SqlDbType.Int, IdiomaId);
                    objetoConexao.AdicionarParametro("@PublicacaoId", SqlDbType.Int, PublicacaoId);
                    objetoConexao.AdicionarParametro("@UsuarioId", SqlDbType.Int, UsuarioId);
                    objetoConexao.AdicionarParametro("@FiltrarPrivacidade", SqlDbType.Bit, FiltrarPrivacidade);
                    using (DataTable dt = objetoConexao.RetornarTabela("USP_SEL_Publicacao"))
                    {
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            DataRow dr = dt.Rows[0];
                            publicacao = new Publicacao();
                            CarregarDTO_Publicacao(publicacao, dr);

                            resposta.Publicacao = publicacao;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //logBLL.Error(ex);
                throw;
            }

            return resposta;
        }
        public ActionResult CarregarPublicacao(int PublicacaoId, int IdiomaId)
        {
            PublicacaoDAL dal = new PublicacaoDAL();
            Publicacao publicacao = new Publicacao();

            int SiteId = GetCurrentSite();
            int UsuarioId = 1;
            //int IdiomaId = 1;

            //Eventos
            PublicacaoDAL publicacaoDAL = new PublicacaoDAL();
            var resposta = publicacaoDAL.Carregar(SiteId, IdiomaId, PublicacaoId, UsuarioId, false);

            return Json(resposta, JsonRequestBehavior.AllowGet);
        }
        public ActionResult GravarPublicacao(string Publicacao, string PublicacaoOld, string ListaUsuarioGrupo, string ListaUsuario)
        {
            NumberFormatInfo provider = NumberFormatInfo.CurrentInfo;
            
            var form = (JObject)JsonConvert.DeserializeObject(Publicacao);

            Publicacao _anterior = new Publicacao();
            Publicacao _novo = new Publicacao();

            _novo.PublicacaoId = (int)Util.GetValue<int>(form, "PublicacaoId");
            _novo.SiteId = GetCurrentSite();
            _novo.PublicacaoTipoId = (int)Util.GetValue<int>(form, "PublicacaoTipo");
            var data = (String)Util.GetValue<String>(form, "Data");
            if (!String.IsNullOrEmpty(data)){
                CultureInfo provider2 = new CultureInfo("pt-BR");
                _novo.Data = Convert.ToDateTime(data, provider2);
            }
            
            var dataValidade = (String)Util.GetValue<String>(form, "DataValidade");
            if (!String.IsNullOrEmpty(dataValidade)){
                CultureInfo provider2 = new CultureInfo("pt-BR");
                _novo.DataValidade = Convert.ToDateTime(dataValidade, provider2);
            }

            _novo.Detalhe.IdiomaId = 1;
            _novo.Detalhe.Titulo = (string)Util.GetValue<string>(form, "Titulo");
            _novo.Detalhe.Resumo = (string)Util.GetValue<string>(form, "Resumo");
            _novo.Detalhe.Conteudo = (string)Util.GetValue<string>(form, "PublicacaoConteudo");
            _novo.Ativo = Convert.ToBoolean((int?)Util.GetValue<int?>(form, "Status"));

            _novo.Destaque = Convert.ToBoolean((int?)Util.GetValue<int?>(form, "ExibirHome"));
            _novo.Posicao = (int?)Util.GetValue<int?>(form, "Posicao");
            _novo.EditoriaId = (int)Util.GetValue<int>(form, "Editoria", 0);
            _novo.Detalhe.Fonte = (string)Util.GetValue<string>(form, "Fonte");
            _novo.Tags = (string)Util.GetValue<string>(form, "tags_1");

            _novo.Complemento.Privado = Convert.ToBoolean((int?)Util.GetValue<int?>(form, "Privado"));

            //var grupos = (string)Util.GetValue<string>(form, "UsuarioGrupo");

            #region --> Validação
            PublicacaoResponse resp = new PublicacaoResponse();
            if (_novo.PublicacaoTipoId == null || _novo.PublicacaoTipoId == 0)
            {
                resp.Resposta.Erro = true;
                if (resp.Resposta.Mensagem.Length > 0) resp.Resposta.Mensagem += "<br />";
                resp.Resposta.Mensagem += "- Selecionar o Tipo de Publicação.";
            }
            if (Util.GetValue<int?>(form, "Status") == null)
            {
                resp.Resposta.Erro = true;
                if (resp.Resposta.Mensagem.Length > 0) resp.Resposta.Mensagem += "<br />";
                resp.Resposta.Mensagem += "- Selecionar o Status: Ativo / Inativo.";
            }
            if (_novo.Complemento.Privado == true && string.IsNullOrEmpty(ListaUsuarioGrupo) && string.IsNullOrEmpty(ListaUsuario))
            {
                resp.Resposta.Erro = true;
                if (resp.Resposta.Mensagem.Length > 0) resp.Resposta.Mensagem += "<br />";
                resp.Resposta.Mensagem += "- Informar pelo menos um Usuário ou Grupo para publicação privada.";
            }
            if (resp.Resposta.Erro)
            {
                return Json(resp, JsonRequestBehavior.AllowGet);
            }
            #endregion

            List<PublicacaoIdiomaExcecao> Extras = new List<PublicacaoIdiomaExcecao>();
            List<PublicacaoIdiomaExcecao> ExtrasOld = new List<PublicacaoIdiomaExcecao>();
            
            #region -> Idiomas Extras
            //-- EN
            PublicacaoIdiomaExcecao ExtraEN = new PublicacaoIdiomaExcecao();
            ExtraEN.IdiomaId = (int)Util.IDIOMA.ENGLISH;
            ExtraEN.Titulo = (string)Util.GetValue<string>(form, "TituloEN");
            ExtraEN.Resumo = (string)Util.GetValue<string>(form, "ResumoEN");
            ExtraEN.Conteudo = (string)Util.GetValue<string>(form, "PublicacaoConteudoEN");
            //ExtraEN.Editora = (string)Util.GetValue<string>(form, "EditoriaEN");
            ExtraEN.Fonte = (string)Util.GetValue<string>(form, "FonteEN");
            Extras.Add(ExtraEN);
            //-- ES
            PublicacaoIdiomaExcecao ExtraES = new PublicacaoIdiomaExcecao();
            ExtraES.IdiomaId = (int)Util.IDIOMA.ESPANHOL;
            ExtraES.Titulo = (string)Util.GetValue<string>(form, "TituloES");
            ExtraES.Resumo = (string)Util.GetValue<string>(form, "ResumoES");
            ExtraES.Conteudo = (string)Util.GetValue<string>(form, "PublicacaoConteudoES");
            ExtraES.Editora = (string)Util.GetValue<string>(form, "EditoriaES");
            //ExtraES.Fonte = (string)Util.GetValue<string>(form, "FonteES");
            Extras.Add(ExtraES);
            //-- FR
            PublicacaoIdiomaExcecao ExtraFR = new PublicacaoIdiomaExcecao();
            ExtraFR.IdiomaId = (int)Util.IDIOMA.FRANCES;
            ExtraFR.Titulo = (string)Util.GetValue<string>(form, "TituloFR");
            ExtraFR.Resumo = (string)Util.GetValue<string>(form, "ResumoFR");
            ExtraFR.Conteudo = (string)Util.GetValue<string>(form, "PublicacaoConteudoFR");
            ExtraFR.Editora = (string)Util.GetValue<string>(form, "EditoriaFR");
            //ExtraFR.Fonte = (string)Util.GetValue<string>(form, "FonteFR");
            Extras.Add(ExtraFR);
            #endregion

            if (PublicacaoOld != null && PublicacaoOld != "null")
            {
                var formOld = (JObject)JsonConvert.DeserializeObject(PublicacaoOld);

                _anterior.PublicacaoId = (int)Util.GetValue<int>(formOld, "UsuarioId");
                _anterior.Titulo = (string)Util.GetValue<string>(formOld, "Nome");
                _anterior.Resumo = (string)Util.GetValue<string>(formOld, "Login");
                //_anterior.Data = (DateTime)Util.GetValue<string>(form, "Data");

                #region -> Idiomas Extras (Dados anterior a alteração)
                //-- EN
                PublicacaoIdiomaExcecao ExtraENOld = new PublicacaoIdiomaExcecao();
                ExtraENOld.IdiomaId = (int)Util.IDIOMA.ENGLISH;
                ExtraENOld.Titulo = (string)Util.GetValue<string>(form, "TituloEN");
                ExtraENOld.Resumo = (string)Util.GetValue<string>(form, "ResumoEN");
                ExtraENOld.Conteudo = (string)Util.GetValue<string>(form, "PublicacaoConteudoEN");
                //ExtraENOld.Editora = (string)Util.GetValue<string>(form, "EditoriaEN");
                ExtraENOld.Fonte = (string)Util.GetValue<string>(form, "FonteEN");
                ExtrasOld.Add(ExtraENOld);
                //-- ES
                PublicacaoIdiomaExcecao ExtraESOld = new PublicacaoIdiomaExcecao();
                ExtraESOld.IdiomaId = (int)Util.IDIOMA.ESPANHOL;
                ExtraESOld.Titulo = (string)Util.GetValue<string>(form, "TituloES");
                ExtraESOld.Resumo = (string)Util.GetValue<string>(form, "ResumoES");
                ExtraESOld.Conteudo = (string)Util.GetValue<string>(form, "PublicacaoConteudoES");
                //ExtraESOld.Editora = (string)Util.GetValue<string>(form, "EditoriaES");
                ExtraESOld.Fonte = (string)Util.GetValue<string>(form, "FonteES");
                ExtrasOld.Add(ExtraESOld);
                //-- FR
                PublicacaoIdiomaExcecao ExtraFROld = new PublicacaoIdiomaExcecao();
                ExtraFROld.IdiomaId = (int)Util.IDIOMA.FRANCES;
                ExtraFROld.Titulo = (string)Util.GetValue<string>(form, "TituloFR");
                ExtraFROld.Resumo = (string)Util.GetValue<string>(form, "ResumoFR");
                ExtraFROld.Conteudo = (string)Util.GetValue<string>(form, "PublicacaoConteudoFR");
                //ExtraFROld.Editora = (string)Util.GetValue<string>(form, "EditoriaFR");
                ExtraFROld.Fonte = (string)Util.GetValue<string>(form, "FonteFR");
                ExtrasOld.Add(ExtraFROld);
                #endregion
            }

            return Json(new PublicacaoDAL().Gravar(_novo, _anterior, Extras, ExtrasOld, ListaUsuarioGrupo, ListaUsuario), JsonRequestBehavior.AllowGet);
        }
 public PublicacaoResponse()
 {
     Resposta = new Resposta();
     Publicacao = new Publicacao();
 }
        public PublicacaoResponse Gravar(Publicacao Publicacao, Publicacao PublicacaoOld, List<PublicacaoIdiomaExcecao> Extras, List<PublicacaoIdiomaExcecao> ExtrasOld, string ListaUsuarioGrupo, string ListaUsuario)
        {
            PublicacaoResponse resposta = new PublicacaoResponse();
            try
            {
                using (ConexaoDB objetoConexao = new ConexaoDB())
                {
                    objetoConexao.AdicionarParametro("@PublicacaoId", SqlDbType.Int, Publicacao.PublicacaoId);
                    objetoConexao.AdicionarParametro("@SiteId", SqlDbType.Int, Publicacao.SiteId);
                    objetoConexao.AdicionarParametro("@PublicacaoTipoId", SqlDbType.Int, Publicacao.PublicacaoTipoId);
                    objetoConexao.AdicionarParametro("@Data", SqlDbType.DateTime, Publicacao.Data);
                    objetoConexao.AdicionarParametro("@DataValidade", SqlDbType.DateTime, Publicacao.DataValidade);
                    objetoConexao.AdicionarParametro("@Posicao", SqlDbType.Int, Publicacao.Posicao);
                    objetoConexao.AdicionarParametro("@Destaque", SqlDbType.Bit, Publicacao.Destaque);
                    objetoConexao.AdicionarParametro("@Privado", SqlDbType.Bit, Publicacao.Complemento.Privado);
                    objetoConexao.AdicionarParametro("@ListaUsuarioGrupo", SqlDbType.VarChar, ListaUsuarioGrupo);
                    objetoConexao.AdicionarParametro("@ListaUsuario", SqlDbType.VarChar, ListaUsuario);
                    objetoConexao.AdicionarParametro("@Ativo", SqlDbType.Bit, Publicacao.Ativo);
                    objetoConexao.AdicionarParametro("@EditoriaId", SqlDbType.Int, Publicacao.EditoriaId);
                    objetoConexao.AdicionarParametro("@Tags", SqlDbType.VarChar, Publicacao.Tags);
                    using (DataTable dt = objetoConexao.RetornarTabela("USP_INS_Publicacao"))
                    {
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            resposta.Resposta.Erro = false;// (bool)dt.Rows[0]["indErro"];
                            resposta.Resposta.Mensagem = "";// (string)dt.Rows[0]["msgErro"];
                            resposta.Publicacao = Publicacao;
                            resposta.Publicacao.PublicacaoId = (int)dt.Rows[0]["PublicacaoId"];
                        }
                    }
                }

                using (ConexaoDB objetoConexao = new ConexaoDB())
                {
                    objetoConexao.AdicionarParametro("@PublicacaoId", SqlDbType.Int, resposta.Publicacao.PublicacaoId);
                    objetoConexao.AdicionarParametro("@Privado", SqlDbType.Bit, false);
                    using (DataTable dt = objetoConexao.RetornarTabela("USP_INS_PublicacaoRestricao"))
                    {
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            resposta.Resposta.Erro = false;// (bool)dt.Rows[0]["indErro"];
                            resposta.Resposta.Mensagem = "";// (string)dt.Rows[0]["msgErro"];
                            resposta.Publicacao = Publicacao;
                            //resposta.Publicacao.PublicacaoId = (int)dt.Rows[0]["PublicacaoRestricaoId"];
                        }
                    }
                }

                using (ConexaoDB objetoConexao = new ConexaoDB())
                {

                    objetoConexao.AdicionarParametro("@PublicacaoIdiomaExcecaoId", SqlDbType.Int, 0);
                    objetoConexao.AdicionarParametro("@PublicacaoId", SqlDbType.Int, resposta.Publicacao.PublicacaoId);
                    objetoConexao.AdicionarParametro("@IdiomaId", SqlDbType.Int, Publicacao.Detalhe.IdiomaId);
                    objetoConexao.AdicionarParametro("@Titulo", SqlDbType.VarChar, Publicacao.Detalhe.Titulo);
                    objetoConexao.AdicionarParametro("@Resumo", SqlDbType.VarChar, Publicacao.Detalhe.Resumo);
                    objetoConexao.AdicionarParametro("@Conteudo", SqlDbType.VarChar, Publicacao.Detalhe.Conteudo);
                    //objetoConexao.AdicionarParametro("@Editora", SqlDbType.VarChar, Publicacao.Detalhe.Editora);
                    objetoConexao.AdicionarParametro("@Fonte", SqlDbType.VarChar, Publicacao.Detalhe.Fonte);
                    objetoConexao.AdicionarParametro("@Tags", SqlDbType.VarChar, Publicacao.Detalhe.Tags);
                    objetoConexao.AdicionarParametro("@ArquivoDestaqueId", SqlDbType.BigInt, Publicacao.Detalhe.ArquivoDestaqueId);
                    using (DataTable dt = objetoConexao.RetornarTabela("USP_INS_PublicacaoIdiomaExcecao"))
                    {
                        if (dt != null && dt.Rows.Count > 0)
                        {
                            resposta.Resposta.Erro = false;// (bool)dt.Rows[0]["indErro"];
                            resposta.Resposta.Mensagem = "";// (string)dt.Rows[0]["msgErro"];
                            resposta.Publicacao = Publicacao;
                            //resposta.Publicacao.PublicacaoId = (int)dt.Rows[0]["PublicacaoRestricaoId"];
                        }
                    }
                }

                foreach (var Extra in Extras)
                {
                    using (ConexaoDB objetoConexao = new ConexaoDB())
                    {

                        objetoConexao.AdicionarParametro("@PublicacaoIdiomaExcecaoId", SqlDbType.Int, 0);
                        objetoConexao.AdicionarParametro("@PublicacaoId", SqlDbType.Int, resposta.Publicacao.PublicacaoId);
                        objetoConexao.AdicionarParametro("@IdiomaId", SqlDbType.Int, Extra.IdiomaId);
                        objetoConexao.AdicionarParametro("@Titulo", SqlDbType.VarChar, Extra.Titulo);
                        objetoConexao.AdicionarParametro("@Resumo", SqlDbType.VarChar, Extra.Resumo);
                        objetoConexao.AdicionarParametro("@Conteudo", SqlDbType.VarChar, Extra.Conteudo);
                        //objetoConexao.AdicionarParametro("@Editora", SqlDbType.VarChar, Extra.Editora);
                        objetoConexao.AdicionarParametro("@Fonte", SqlDbType.VarChar, Extra.Fonte);
                        objetoConexao.AdicionarParametro("@Tags", SqlDbType.VarChar, Extra.Tags);
                        objetoConexao.AdicionarParametro("@ArquivoDestaqueId", SqlDbType.BigInt, Publicacao.Detalhe.ArquivoDestaqueId);
                        using (DataTable dt = objetoConexao.RetornarTabela("USP_INS_PublicacaoIdiomaExcecao"))
                        {
                            if (dt != null && dt.Rows.Count > 0)
                            {
                                resposta.Resposta.Erro = false;// (bool)dt.Rows[0]["indErro"];
                                resposta.Resposta.Mensagem = "";// (string)dt.Rows[0]["msgErro"];
                                resposta.Publicacao = Publicacao;
                                //resposta.Publicacao.PublicacaoId = (int)dt.Rows[0]["PublicacaoRestricaoId"];
                            }
                        }
                    }
                }

            }
            catch (Exception ex)
            {
                resposta.Resposta.Erro = true;
                resposta.Resposta.Mensagem = ex.Message;

                //logBLL.Error(ex);
            }
            return resposta;
        }
        private void CarregarDTO_PublicacaoAprovacaoHistorico(Publicacao.PublicacaoHistoricoItem dto, DataRow dr)
        {
            if (Util.GetNonNull(dr["DataLiberacao"]))
            {
                dto.DataLiberacao = (DateTime)dr["DataLiberacao"];
                dto.Data = ((DateTime)dto.DataLiberacao).ToString("dd-MM-yy");
                dto.Hora = ((DateTime)dto.DataLiberacao).ToString("HH:mm");
            }
            if (Util.GetNonNull(dr["Liberado"]))
                dto.Liberado = (bool)dr["Liberado"];
            if (Util.GetNonNull(dr["Descricao"]))
                dto.Descricao = dr["Descricao"].ToString();

            if (Util.GetNonNull(dr["UsuarioId"]))
                dto.UsuarioId = (int)dr["UsuarioId"];
            if (Util.GetNonNull(dr["Nome"]))
                dto.NomeUsuario = dr["Nome"].ToString();
        }
        private void CarregarDTO_Publicacao(Publicacao dto, DataRow dr)
        {
            if (Util.GetNonNull(dr["PublicacaoId"]))
                dto.PublicacaoId = (int)dr["PublicacaoId"];
            if (Util.GetNonNull(dr["PublicacaoTipoId"]))
                dto.PublicacaoTipoId = (int)dr["PublicacaoTipoId"];
            if (Util.GetNonNull(dr["Destaque"]))
                dto.Destaque = (bool)dr["Destaque"];
            if (Util.GetNonNull(dr["Data"]))
                dto.Data = new DateTime(((DateTime)dr["Data"]).Year, ((DateTime)dr["Data"]).Month, ((DateTime)dr["Data"]).Day);
            if (Util.GetNonNull(dr["DataValidade"]))
                dto.DataValidade = (DateTime)dr["DataValidade"];
            if (Util.GetNonNull(dr["Posicao"]))
                dto.Posicao = (int)dr["Posicao"];
            if (Util.GetNonNull(dr["Ativo"]))
                dto.Ativo = (bool)dr["Ativo"];
            if (Util.GetNonNull(dr["EditoriaId"]))
                dto.EditoriaId = (int)dr["EditoriaId"];

            if (Util.GetNonNull(dr["Titulo"]))
                dto.Detalhe.Titulo = dr["Titulo"].ToString();
            if (Util.GetNonNull(dr["Resumo"]))
                dto.Detalhe.Resumo = dr["Resumo"].ToString();
            if (Util.GetNonNull(dr["Conteudo"]))
                dto.Detalhe.Conteudo = dr["Conteudo"].ToString();
            //if (Util.GetNonNull(dr["Editora"]))
            //    dto.Detalhe.Editora = dr["Editora"].ToString();
            if (Util.GetNonNull(dr["Fonte"]))
                dto.Detalhe.Fonte = dr["Fonte"].ToString();
            if (Util.GetNonNull(dr["Tags"]))
                dto.Detalhe.Tags = dr["Tags"].ToString();
            if (Util.GetNonNull(dr["ArquivoDestaqueId"]))
                dto.ArquivoDestaqueId = (long)dr["ArquivoDestaqueId"];

            if (Util.GetNonNull(dr["Privado"]))
                dto.Complemento.Privado = (bool)dr["Privado"];
            if (Util.GetNonNull(dr["Liberado"]))
                dto.Complemento.Liberado = (bool)dr["Liberado"];
            if (Util.GetNonNull(dr["DataLiberado"]))
            {
                dto.Complemento.DataLiberado = (DateTime)dr["DataLiberado"];
                dto.Complemento.Data = ((DateTime)dr["DataLiberado"]).ToString("dd/MM/yyyy");
                dto.Complemento.Hora = ((DateTime)dr["DataLiberado"]).ToString("HH:mm");
            }
            if (Util.GetNonNull(dr["PublicacaoTipo"]))
                dto.Complemento.PublicacaoTipo = dr["PublicacaoTipo"].ToString();
            if (Util.GetNonNull(dr["Editoria"]))
                dto.Complemento.Editoria = dr["Editoria"].ToString();

            if (Util.GetNonNull(dr["ListaUsuarioGrupo"]))
                dto.Complemento.ListaUsuarioGrupo = dr["ListaUsuarioGrupo"].ToString();
            if (Util.GetNonNull(dr["ListaUsuario"]))
                dto.Complemento.ListaUsuario = dr["ListaUsuario"].ToString();

            if (Util.GetNonNull(dr["UsuarioElegivel"]))
                dto.UsuarioElegivel = (bool)dr["UsuarioElegivel"];
            if (Util.GetNonNull(dr["DataAprovacao"]))
                dto.DataAprovacao = (DateTime)dr["DataAprovacao"];

            if (Util.GetNonNull(dr["Tags"]))
                dto.Tags = dr["Tags"].ToString();
        }
        public List<Publicacao> ListarPublicacao(int SiteId, int? PublicacaoId, int? PublicacaoTipoId, bool? Destaque, DateTime? DataValidade, int? UsuarioId, int IdiomaId, bool RetornaDefault = true, bool FiltrarPrivacidade = true)
        {
            List<Publicacao> lista = new List<Publicacao>();
            Publicacao reg;

            AcessoDados acesso = new AcessoDados();

            DataTable tabela = new DataTable();

            tabela = acesso.CarregarDadosParametros("dbCCBC", "USP_SEL_Publicacao", SiteId, PublicacaoId, PublicacaoTipoId, Destaque, DataValidade, UsuarioId, IdiomaId, RetornaDefault, FiltrarPrivacidade);

            foreach (DataRow r in tabela.Rows)
            {
                reg = new Publicacao();
                CarregarDTO_Publicacao(reg, r);
                lista.Add(reg);
            }

            return lista;
        }
        protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
        {
            bool possuiEvento;
            string cor;
            string rotulo = "";
            string cursor = " cursor: pointer;";

            DateTime theDate = e.Day.Date;
            possuiEvento = agenda.Any(x => x.Data == theDate);

            Publicacao a = new Publicacao();
            string linkEvento = "";
            if (possuiEvento)
            {
                //Funciona | Produção:
                //a = agenda.Find(x => x.Data == theDate);
                //if (a.Complemento.Privado != null && (bool)a.Complemento.Privado)
                //{
                //    e.Cell.Attributes.Add("style", "background-image: url('../Images/Img_cadeado.png'); background-repeat: no-repeat;background-position-x: 20px;");
                //}
                //rotulo = a.Detalhe.Titulo;

                //linkEvento = "/" + a.PublicacaoId + "/" + DAL.Util.GerarURLAmigavel(a.Detalhe.Titulo);

                //Novo | Desenvolvimento:
                var eventos = agenda.FindAll(x => x.Data == theDate);
                rotulo = "";
                bool possuiPrivado = false;

                //foreach (var item in eventos)
                //{
                //    string cadeadoItem = "";
                //    if (item.Complemento.Privado != null && (bool)item.Complemento.Privado)
                //    {
                //        possuiPrivado = true;
                //        //cadeadoItem = @"<div style=""background-image: url('/Images/Img_cadeado.png'); background-repeat: no-repeat;background-position-x: 20px;""></div>";
                //        cadeadoItem = "<input type='image' src='/Images/Img_cadeado.png' style='margin-left: 6px;'></input>";
                //    }

                //    //if (rotulo.Length > 0) rotulo += "<br />";
                //    linkEvento = String.Format("/Eventos/{0}/{1}", item.PublicacaoId, DAL.Util.GerarURLAmigavel(item.Detalhe.Titulo));
                //    rotulo += String.Format("<p><a href='{0}' title=''>- {1}</a>{2}</p>", linkEvento, item.Detalhe.Titulo, cadeadoItem);

                //}

                foreach (var item in eventos)
                {
                    string cadeadoItem = "";
                    if (item.Complemento.Privado != null && (bool)item.Complemento.Privado)
                    {
                        possuiPrivado = true;
                        //cadeadoItem = @"<div style=""background-image: url('/Images/Img_cadeado.png'); background-repeat: no-repeat;background-position-x: 20px;""></div>";
                        cadeadoItem = "<input type='image' src='/Images/Img_cadeado.png' style='margin-left: 6px;'></input>";
                    }

                    //if (rotulo.Length > 0) rotulo += "<br />";
                    linkEvento = String.Format("/Eventos/{0}/{1}", item.PublicacaoId, DAL.Util.GerarURLAmigavel(item.Detalhe.Titulo));
                    rotulo += String.Format("<li><a href='{0}' title=' '>{1}{2}</a></li>", linkEvento, item.Detalhe.Titulo, cadeadoItem);

                }

                rotulo = string.Format("<ul>{0}</ul>", rotulo);
                rotulo = String.Format("<div class='menu-internas' style='width: 222px;' title=' '>{0}</div>", rotulo);

                if (possuiPrivado)
                {
                    e.Cell.Attributes.Add("style", "background-image: url('/Images/Img_cadeado.png'); background-repeat: no-repeat;background-position-x: 20px;");
                }
            }

            if (e.Day.IsOtherMonth)
            {
                cor = "color: lightgray !important;";
                if (possuiEvento) cor = "color: lightpink !important;";
            }
            else
            {
                cor = "color: gray;";
                if (possuiEvento) cor = "color: red !important;";
            }

            string border = "";
            if (theDate == DateTime.Today.Date)
            {
                border = "border-radius: 11px; border: 1px solid red; padding: 3px;";
                rotulo = "Hoje";
            }

            //e.Cell.Text = "<a href=" + e.SelectUrl + " style=\"" + cor + border + " font-weight: normal;\" title=\"" + rotulo + "\">" + e.Day.DayNumberText + "</a>";

            //Funciona | Em produção:
            //e.Cell.Text = string.Format("<a href=\"../Eventos{0}\" target=\"_parent\" style=\"{1} font-weight: normal;\" title=\"{2}\"  >" + e.Day.DayNumberText + "</a>", linkEvento, cor + border, rotulo);
            if (possuiEvento)
            {
                e.Cell.Text = string.Format("<a tabindex=\"0\" style=\"{0} font-weight: normal;\" data-toggle=\"popover\" data-trigger=\"focus\" title=\"" + Resources.Portal.EventosDoDia + "\" data-html=\"true\" data-content=\"{1}\" title=' '>" + e.Day.DayNumberText + "</a>", cor + border + cursor, rotulo);
                e.Cell.BackColor = System.Drawing.Color.AliceBlue;
            }
            else
            {
                e.Cell.Text = string.Format("<a tabindex=\"0\" style=\"{0} font-weight: normal;\" title=' '>" + e.Day.DayNumberText + "</a>", cor + border);
            }
        }