/// <summary>
        ///     Página principal del Promovente
        /// </summary>
        /// <param name="CatTipoTramiteId"></param>
        /// <returns></returns>
        public ActionResult Index(int CatTipoTramiteId = 0)
        {
            var promoventeService = new PromoventeService();
            var existeTramite     = new PromoventeService().SeEncuentraTramite(CatTipoTramiteId);

            if (!existeTramite)
            {
                return(View("Error"));
            }

            Session.RemoveAll();
            var lenguajeCiudadanoService = new LenguajeCiudadanoService();

            Enumeracion.MensajesServidor = lenguajeCiudadanoService.ConsultaLenguajeCiudadanoServer();

            var listaMensajesVista = lenguajeCiudadanoService.ConsultaLenguajeCiudadano();

            TempData["Sistema"] = promoventeService.ConceptoTipoTramite(CatTipoTramiteId);
            IdSesionTipoTramite = CatTipoTramiteId;

            return(View(listaMensajesVista));
        }
        private async Task <bool> SendMail(string Mensaje, string TituloCorreo, String NotaCorreo, CitaDTO CitaDto)
        {
            try
            {
                Func <string, string> EvaluarParametro = delegate(string Parametro){
                    return(string.IsNullOrEmpty(Parametro) ? string.Empty : Parametro);
                };

                if (string.IsNullOrEmpty(CitaDto.Promovente.CorreoElectronico))
                {
                    return(false);
                }

                var lista = new List <string> {
                    Mensaje, TituloCorreo, NotaCorreo
                };

                var configuracion = await new LenguajeCiudadanoDAO().LenguajeCiudadanoServerAsync(lista);

                string tituloCorreo;
                string mensajeCorreo;
                string notaCorreo;

                configuracion.TryGetValue(Mensaje, out mensajeCorreo);
                configuracion.TryGetValue(TituloCorreo, out tituloCorreo);
                configuracion.TryGetValue(NotaCorreo, out notaCorreo);

                String CuerpoHTMLCorreo = ConfiguracionHelper.LeerTextoRuta(ConfiguracionHelper.ObtenerConfiguracion(Enumeracion.EnumSysConfiguracion.CuerpoDelCorreo));

                if (CuerpoHTMLCorreo != null)
                {
                    Mensaje = CuerpoHTMLCorreo.Replace("\n", string.Empty).Replace("[MensajeCorreo]", EvaluarParametro(mensajeCorreo));

                    Mensaje = Mensaje.Replace("[NumeroFolio]", EvaluarParametro(CitaDto.NumeroFolio))
                              .Replace("[NombreCompleto]", (EvaluarParametro(CitaDto.Promovente.Nombre) + " " + EvaluarParametro(CitaDto.Promovente.Paterno) + " " + EvaluarParametro(CitaDto.Promovente.Materno)))
                              .Replace("[FechaCita]", EvaluarParametro(CitaDto.FechaCitaVista))
                              .Replace("[HoraCita]", EvaluarParametro(CitaDto.HoraCitaVista));

                    Mensaje = Mensaje.Replace("[Notas]", EvaluarParametro(notaCorreo));
                }

                var promoventeService   = new PromoventeService();
                var conceptoTipoTramite = promoventeService.ConceptoTipoTramite(CitaDto.CatTipoTramiteId);

                if (tituloCorreo != null && (tituloCorreo.IndexOf("[NombreTramite]") != -1 && tituloCorreo.IndexOf("[NombreTramite]") != 0))
                {
                    TituloCorreo = tituloCorreo.Replace("{NombreTramite}", conceptoTipoTramite);
                }
                else
                {
                    TituloCorreo = string.Concat(tituloCorreo.Replace(".", "").TrimEnd(), " ", conceptoTipoTramite.Replace(".", ""), ".");
                }

                await _mailService.SendMailAsync(CitaDto.Promovente.CorreoElectronico, TituloCorreo, Mensaje);

                return(true);
            }
            catch (Exception ex)
            {
                EscribirLog(new ExceptionContext(ControllerContext, ex));
                return(false);
            }
        }