public Mensaje CrearCita(CrearCitaModelo crearCitaModelo)
        {
            Mensaje mensaje = new Mensaje();

            try
            {
                Mensaje mansajeCreacionPaciente = new DatosPaciente().CrearPaciente(crearCitaModelo.PacienteModelo);
                bool    seCreoPacienteConExito  = mansajeCreacionPaciente.Exito;

                if (seCreoPacienteConExito)
                {
                    crearCitaModelo.CitaModelo.PacienteId = mansajeCreacionPaciente.EntidadId;
                    mensaje = new DatosPaciente().CrearCita(crearCitaModelo.CitaModelo);
                }
                else
                {
                    mensaje = mansajeCreacionPaciente;
                }
            }
            catch (Exception excepcion)
            {
                mensaje.Exito     = false;
                mensaje.Respuesta = excepcion.Message.ToString();
            }

            return(mensaje);
        }
        public JsonResult CrearCita(CrearCitaModelo crearCitaModelo)
        {
            string identificadorGUID = new GeneracionCodigo().GenerarCodigoUnico();

            crearCitaModelo.CitaModelo.IdentificadorGUID = identificadorGUID;
            Mensaje mensajeRespuesta = new Negocios.NegociosPaciente().CrearCita(crearCitaModelo);

            if (mensajeRespuesta.Exito)
            {
                string rutaServer    = Server.MapPath("~/");
                string rutaPlantilla = rutaServer + ConfigurationManager.AppSettings["rutaPlantilla"];
                string asunto        = ConfigurationManager.AppSettings["asuntoCita"];
                Dictionary <string, string> datosPaciente = new DiccionarioDatos().CrearDiccionarioDatosPaciente(crearCitaModelo);

                ManejadorCorreos manejadorCorreos = new ManejadorCorreos(crearCitaModelo.PacienteModelo.CorreoElectronico, asunto);
                manejadorCorreos.CrearCuerpoCorreo(rutaPlantilla, datosPaciente);
                int           rolAdministrador     = (int)Roles.Administrador;
                List <string> listaCorreosConCopia =
                    new Negocios.NegociosUsuario().ObtenerUsuariosPorRol(rolAdministrador).Select(item => item.Correo).ToList();
                manejadorCorreos.EstablecerCorreosConCopia(listaCorreosConCopia);
                manejadorCorreos.EnviarCorreo();
            }

            var datos = new JavaScriptSerializer().Serialize(mensajeRespuesta);

            return(Json(datos, JsonRequestBehavior.AllowGet));
        }
        public Dictionary <string, string> CrearDiccionarioDatosPaciente(CrearCitaModelo citaModelo)
        {
            Dictionary <string, string> datosPaciente = new Dictionary <string, string>();

            datosPaciente.Add("NombrePaciente", citaModelo.PacienteModelo.Nombre + " " + citaModelo.PacienteModelo.Apellidos);
            datosPaciente.Add("CorreoElectronico", citaModelo.PacienteModelo.CorreoElectronico);
            datosPaciente.Add("Telefono", citaModelo.PacienteModelo.Telefono);
            datosPaciente.Add("Identificacion", citaModelo.PacienteModelo.Identificacion);
            datosPaciente.Add("HoraCita", citaModelo.CitaModelo.DetalleHora);
            datosPaciente.Add("FechaCita", citaModelo.CitaModelo.Dia);

            return(datosPaciente);
        }
        public JsonResult ActualizarHorarioCita(CitaModelo citaModelo)
        {
            Mensaje mensajeRespuesta = new Negocios.NegociosPaciente().ActualizarHorarioCita(citaModelo);

            if (mensajeRespuesta.Exito)
            {
                PacienteModelo paciente =
                    new Negocios.NegociosPaciente().ObtenerPacientes(citaModelo.PacienteId).FirstOrDefault();

                string rutaServer    = Server.MapPath("~/");
                string rutaPlantilla = rutaServer + ConfigurationManager.AppSettings["rutaPlantilla"];
                string asunto        = ConfigurationManager.AppSettings["asuntoCita"];


                CrearCitaModelo crearCitaModelo = new CrearCitaModelo();
                crearCitaModelo.PacienteModelo.Nombre            = paciente.Nombre;
                crearCitaModelo.PacienteModelo.Apellidos         = paciente.Apellidos;
                crearCitaModelo.PacienteModelo.CorreoElectronico = paciente.CorreoElectronico;
                crearCitaModelo.PacienteModelo.Telefono          = paciente.Telefono;
                crearCitaModelo.PacienteModelo.Identificacion    = paciente.Identificacion;
                crearCitaModelo.CitaModelo.DetalleHora           = citaModelo.DetalleHora;
                crearCitaModelo.CitaModelo.Dia = citaModelo.Dia;

                Dictionary <string, string> datosPaciente = new DiccionarioDatos().CrearDiccionarioDatosPaciente(crearCitaModelo);

                ManejadorCorreos manejadorCorreos = new ManejadorCorreos(paciente.CorreoElectronico, asunto);
                manejadorCorreos.CrearCuerpoCorreo(rutaPlantilla, datosPaciente);
                int           rolAdministrador     = (int)Roles.Administrador;
                List <string> listaCorreosConCopia =
                    new Negocios.NegociosUsuario().ObtenerUsuariosPorRol(rolAdministrador).Select(item => item.Correo).ToList();
                manejadorCorreos.EstablecerCorreosConCopia(listaCorreosConCopia);
                manejadorCorreos.EnviarCorreo();
            }

            var datos = new JavaScriptSerializer().Serialize(mensajeRespuesta);

            return(Json(datos, JsonRequestBehavior.AllowGet));
        }