예제 #1
0
        public bool actualizarEstadoCita(int citaId, string estado, int usuarioId)
        {
            var disponibilidad = new Disponibilidad();
            var horarioBorrado = false;
            var cita           = new Cita();
            var correo         = new SendEmail();

            try{
                if (estado.Equals("Cancelado"))
                {
                    cita           = this.CitaRepository.FindById(citaId);
                    disponibilidad = this.disponibilidadRepository.listarPorFecha(cita.Fecha.ToString("yyyy-MM-dd"));
                    if (disponibilidad != null)
                    {
                        horarioBorrado = this.horarioDescartadoRepository.borrarPorDisponibilidadHoraInicio(cita.HoraInicioAtencion, disponibilidad);
                    }

                    var notificacion = new Notificacion();

                    //EMAIL Paciente
                    string subject        = "Cita Cancelada";
                    string emailUserTo    = cita.Paciente.Usuario.Email;
                    string nombrePaciente = cita.Paciente.Usuario.Nombre + " " + cita.Paciente.Usuario.Apellido;
                    string horaCitaEmail  = cita.HoraInicioAtencion.ToString();


                    //EMAIL ESPECIALISTA
                    var    especialista       = especialistaRepository.FindById(1);
                    string emailUserTo2       = especialista.Usuario.Email;
                    string nombreEspecialista = especialista.Usuario.Nombre + " " + especialista.Usuario.Apellido;



                    if (usuarioId == 1)
                    {
                        notificacion.EmisorId   = usuarioId;
                        notificacion.ReceptorId = cita.Paciente.UsuarioId;

                        //EMAIL Paciente
                        string textBody = "El especialista " + nombreEspecialista + " canceló la cita para la siguiente fecha: " + horaCitaEmail;
                        correo.sendEmailTo(nombrePaciente, emailUserTo, subject, textBody);

                        //EMAIL ESPECIALISTA
                        string textBody2 = "Acabas de cancelar la cita con el paciente " + nombrePaciente + " para la siguiente fecha: " + horaCitaEmail;
                        correo.sendEmailTo(nombreEspecialista, emailUserTo2, subject, textBody2);
                    }
                    else
                    {
                        notificacion.EmisorId   = usuarioId;
                        notificacion.ReceptorId = 1;

                        //EMAIL ESPECIALISTA

                        //string nombrePaciente = cita.Paciente.Usuario.Nombre + " "+ cita.Paciente.Usuario.Apellido;
                        //string horaCitaEmail = cita.HoraInicioAtencion.ToString();
                        string textBody = "El paciente " + nombrePaciente + " canceló la cita para la siguiente fecha: " + horaCitaEmail;
                        correo.sendEmailTo(nombreEspecialista, emailUserTo2, subject, textBody);

                        //EMAIL PACIENTE
                        string textBody2 = "Acabas de cancelar la cita con el especialista " + nombreEspecialista + " para la siguiente fecha: " + horaCitaEmail;
                        correo.sendEmailTo(nombrePaciente, emailUserTo, subject, textBody2);
                    }
                    notificacion.TipoNotificacion = "CANCELARCITA";
                    notificacionRepository.Save(notificacion);
                }
            } catch (System.Exception) {
            }


            return(CitaRepository.actualizarEstadoCita(citaId, estado));
        }