public AvailabilityTimeRange obtenerListaHorasDisponibles(string fecha) { var listarHorasDisponibles = new AvailabilityTimeRange(); var disponibilidad = new Disponibilidad(); var conversor = new ConversorDeFechaYHora(); try{ var fechaConvertida = conversor.TransformarAFecha(fecha); disponibilidad = listarPorFecha(fecha); if (disponibilidad != null) { listarHorasDisponibles.setList(disponibilidad.HoraInicio, disponibilidad.HoraFin, disponibilidad.HorariosDescartados.ToList()); } else { listarHorasDisponibles.setList(new DateTime(fechaConvertida.Year, fechaConvertida.Month, fechaConvertida.Day, 7, 0, 0), new DateTime(fechaConvertida.Year, fechaConvertida.Month, fechaConvertida.Day, 19, 0, 0), null); } if (listarHorasDisponibles.hours.Count == 0) { return(null); } }catch (System.Exception) { throw; } return(listarHorasDisponibles); }
public Disponibilidad listarPorFecha(string fecha) { var disponibilidad = new Disponibilidad(); var conversor = new ConversorDeFechaYHora(); try{ disponibilidad = this.context.Disponibilidades.Include(d => d.HorariosDescartados) .FirstOrDefault(d => d.Dia == conversor.TransformarAFecha(fecha)); } catch (System.Exception) { throw; } return(disponibilidad); }
public bool registrarDisponibilidad(FormularioDisponibilidad entity, int especialistaId) { var conversor = new ConversorDeFechaYHora(); var disponibilidad = new Disponibilidad(); var horariosDescartados = new List <HorarioDescartado>(); var disponibilidadGuardada = new Disponibilidad(); var registrado = false; try{ disponibilidadGuardada = listarPorFecha(entity.dia); if (disponibilidadGuardada == null) { disponibilidad.Dia = conversor.TransformarAFecha(entity.dia); disponibilidad.HoraInicio = conversor.TransformarAHora(entity.horaInicio, entity.dia); disponibilidad.HoraFin = conversor.TransformarAHora(entity.horaFin, entity.dia); disponibilidad.EspecialistaId = especialistaId; disponibilidad.Especialista = this.EspecialistaRepository.FindById(especialistaId); var disInserted = this.DisponibilidadRepository.guardarDisponibilidad(disponibilidad); foreach (var horario in entity.horariosDescartados) { var horarioDescartado = new HorarioDescartado(); horarioDescartado.HoraInicio = conversor.TransformarAHora( horario.horaInicio, entity.dia ); horarioDescartado.HoraFin = conversor.TransformarAHora( horario.horaFin, entity.dia ); horarioDescartado.DisponibilidadId = disInserted.Id; horarioDescartado.Disponibilidad = disInserted; this.HorarioDescartadoRepository.Save(horarioDescartado); registrado = true; } } else { registrado = false; } } catch (System.Exception) { throw; } return(registrado); }
public bool registrarTratamiento(FormularioTratamiento t) { var nuevoTratamiento = new Tratamiento(); var conversor = new ConversorDeFechaYHora(); var registroExitoso = false; try{ nuevoTratamiento.TipoTratamiento = t.TipoTratamiento; nuevoTratamiento.FechaEnvio = conversor.TransformarAFecha(t.FechaEnvio); nuevoTratamiento.FechaInicio = conversor.TransformarAFecha(t.FechaInicio); nuevoTratamiento.FechaFin = conversor.TransformarAFecha(t.FechaFin); nuevoTratamiento.FrecuenciaAlDia = t.FrecuenciaAlDia; nuevoTratamiento.TiempoPorTerapia = t.TiempoPorTerapia; nuevoTratamiento.ImagenEditada = t.ImagenEditada; nuevoTratamiento.SolicitudTratamientoId = t.SolicitudTratamientoId; var solicitudAResponder = solicitudTratamientoRepository.FindById(t.SolicitudTratamientoId); nuevoTratamiento.SolicitudTratamiento = solicitudAResponder; solicitudTratamientoRepository.actualizarEstadoDeSolicitudDeTratamiento( nuevoTratamiento.SolicitudTratamientoId, "Respondido" ); nuevoTratamiento.Estado = "En Proceso"; tratamientoRepository.Save(nuevoTratamiento); registroExitoso = true; if (registroExitoso) { var notificacion = new Notificacion(); notificacion.EmisorId = 1; notificacion.ReceptorId = solicitudAResponder.Paciente.UsuarioId; notificacion.TipoNotificacion = "RESPONDERTRATAMIENTO"; notificacionRepository.Save(notificacion); } }catch (System.Exception) { throw; } return(registroExitoso); }
public void RegistrarCita(FormularioCita entity, int PacienteId) { var cita = new Cita(); var conversor = new ConversorDeFechaYHora(); var correo = new SendEmail(); var disponibilidad = new Disponibilidad(); try { var tipoAtencion = tipoAtencionRepository.FindByDescription(entity.TipoAtencion); var paciente = PacienteRepository.FindById(PacienteId); cita.Fecha = conversor.TransformarAFecha(entity.Fecha); cita.HoraInicioAtencion = conversor.TransformarAHora(entity.HoraInicioAtencion, entity.Fecha); cita.HoraFinAtencion = conversor.TransformarAHora(entity.HoraFinAtencion, entity.Fecha); cita.Estado = "En Proceso"; cita.PacienteId = paciente.Id; cita.Paciente = paciente; cita.TipoAtencionId = tipoAtencion.Id; cita.TipoAtencion = tipoAtencion; Save(cita); var horarioDescartado = new HorarioDescartado(); horarioDescartado.HoraInicio = cita.HoraInicioAtencion; horarioDescartado.HoraFin = cita.HoraFinAtencion; disponibilidad = disponibilidadRepository.listarPorFecha(entity.Fecha); if (disponibilidad != null) { horarioDescartado.DisponibilidadId = disponibilidad.Id; horarioDescartado.Disponibilidad = disponibilidad; } else { disponibilidad = new Disponibilidad(); disponibilidad.Dia = cita.Fecha; disponibilidad.HoraInicio = conversor.TransformarAHora("07:00", entity.Fecha); disponibilidad.HoraFin = conversor.TransformarAHora("19:00", entity.Fecha); disponibilidad.EspecialistaId = 1; disponibilidad.Especialista = this.especialistaRepository.FindById(disponibilidad.EspecialistaId); var disInserted = this.disponibilidadRepository.guardarDisponibilidad(disponibilidad); horarioDescartado.DisponibilidadId = disInserted.Id; horarioDescartado.Disponibilidad = disInserted; } this.horarioDescartadoRepository.Save(horarioDescartado); var notificacion = new Notificacion(); notificacion.EmisorId = 1; notificacion.ReceptorId = paciente.UsuarioId; notificacion.TipoNotificacion = "NUEVACITA"; notificacionRepository.Save(notificacion); var especialista = especialistaRepository.FindById(1); string emailUserTo2 = especialista.Usuario.Email; string nombreEspecialista = especialista.Usuario.Nombre + " " + especialista.Usuario.Apellido; //Email Paciente string emailUserTo = cita.Paciente.Usuario.Email; string subject = "Nueva cita"; string nombrePaciente = cita.Paciente.Usuario.Nombre + " " + cita.Paciente.Usuario.Apellido; string horaCitaEmail = cita.HoraInicioAtencion.ToString(); //string nombreEspecialistaEmail = disponibilidad.Especialista.Usuario.Nombre + " "+disponibilidad.Especialista.Usuario.Apellido; string textBody = "El especialista " + nombreEspecialista + " registró una nueva cita para la siguiente fecha: " + horaCitaEmail; correo.sendEmailTo(nombrePaciente, emailUserTo, subject, textBody); //var valdicacionCorreo = correo.verificarEMail(emailUserTo); //Email Especialista string textBody2 = "Acabas de registrar una cita para el paciente: " + nombrePaciente + " para la siguiente fecha: " + horaCitaEmail; correo.sendEmailTo(nombreEspecialista, emailUserTo2, subject, textBody2); }catch (System.Exception) { throw; } }
public bool actualizarCita(int id, FormularioCitaPaciente form) { var cita = new Cita(); var conversor = new ConversorDeFechaYHora(); var disponibilidadAnterior = new Disponibilidad(); var disponibilidadActual = new Disponibilidad(); var citaActualizada = false; var horaInicioAnterior = new DateTime(); var horaFinAnterior = new DateTime(); var horaInicioActual = new DateTime(); var horaFinActual = new DateTime(); var correo = new SendEmail(); try{ cita = this.CitaRepository.FindById(id); horaInicioAnterior = cita.HoraInicioAtencion; horaFinAnterior = cita.HoraFinAtencion; horaInicioActual = conversor.TransformarAHora(form.HoraInicioAtencion, form.Fecha); horaFinActual = conversor.TransformarAHora(form.HoraFinAtencion, form.Fecha); disponibilidadAnterior = disponibilidadRepository.listarPorFecha(cita.Fecha.ToString("yyyy-MM-dd")); disponibilidadActual = disponibilidadRepository.listarPorFecha(form.Fecha); var horarioDescartado = new HorarioDescartado(); horarioDescartado.HoraInicio = horaInicioActual; horarioDescartado.HoraFin = horaFinActual; if (disponibilidadAnterior != null) { if (disponibilidadActual == null) { disponibilidadActual = new Disponibilidad(); disponibilidadActual.Dia = conversor.TransformarAFecha(form.Fecha); disponibilidadActual.HoraInicio = conversor.TransformarAHora("07:00", form.Fecha); disponibilidadActual.HoraFin = conversor.TransformarAHora("18:00", form.Fecha); disponibilidadActual.EspecialistaId = 1; disponibilidadActual.Especialista = this.especialistaRepository.FindById(disponibilidadActual.EspecialistaId); var disInserted = this.disponibilidadRepository.guardarDisponibilidad(disponibilidadActual); horarioDescartado.DisponibilidadId = disInserted.Id; horarioDescartado.Disponibilidad = disInserted; this.horarioDescartadoRepository.Save(horarioDescartado); } this.horarioDescartadoRepository.actualizarHorarioDescartado(horaInicioAnterior, horaFinAnterior, horaInicioActual, horaFinActual, disponibilidadAnterior, disponibilidadActual); var tipoAtencion = tipoAtencionRepository.FindByDescription(form.TipoAtencion); PacienteRepository.ActualizarNumeroPaciente(form.Celular, cita.Paciente); cita.Fecha = conversor.TransformarAFecha(form.Fecha); cita.HoraInicioAtencion = conversor.TransformarAHora(form.HoraInicioAtencion, form.Fecha); cita.HoraFinAtencion = conversor.TransformarAHora(form.HoraFinAtencion, form.Fecha); cita.TipoAtencionId = tipoAtencion.Id; cita.TipoAtencion = tipoAtencion; citaActualizada = this.CitaRepository.actualizarCita(cita, id); } var notificacion = new Notificacion(); notificacion.EmisorId = cita.Paciente.UsuarioId; notificacion.ReceptorId = 1; notificacion.TipoNotificacion = "MODIFICARCITA"; notificacionRepository.Save(notificacion); //Email especialista var especialista = especialistaRepository.FindById(1); string emailUserTo = especialista.Usuario.Email; string nombreEspecialista = especialista.Usuario.Nombre + " " + especialista.Usuario.Apellido; string nombrePaciente = cita.Paciente.Usuario.Nombre + " " + cita.Paciente.Usuario.Apellido; string horaCitaEmail = cita.HoraInicioAtencion.ToString(); string textBody = "El paciente " + nombrePaciente + " modificó la cita para la siguiente fecha: " + horaCitaEmail; string subject = "Cita Modificada"; correo.sendEmailTo(nombreEspecialista, emailUserTo, subject, textBody); //Email Paciente string emailUserTo2 = cita.Paciente.Usuario.Email; string textBody2 = "Acabas de modificar la cita para la siguiente fecha: " + horaCitaEmail; correo.sendEmailTo(nombrePaciente, emailUserTo2, subject, textBody2); } catch (System.Exception) { throw; } return(citaActualizada); }