public ActionResult ConfirmarPagoReserva(TurnoReservaViewModel model) { if (ModelState.IsValid) { string validartarjeta = TarjetaCreditoValidation.ValidateCardNumber(model.TarjetaViewModel.NumeroTarjeta); bool c = TarjetaCreditoValidation.IsValidCardType(TarjetaCreditoValidation.CleanCreditCardNumber(model.TarjetaViewModel.NumeroTarjeta)); //TurnoReserva turnoreserva = new TurnoReserva(); //turnoreserva.UserId = System.Web.HttpContext.Current.User.Identity.GetUserId(); //turnoreserva.Estado = Estado.Reservado; string currentUserId = User.Identity.GetUserId(); ApplicationUser currentUser = db.Users.FirstOrDefault(x => x.Id == currentUserId); Paciente paciente = db.Pacientes.ToList().FirstOrDefault(x => x.Id == currentUser.Id); var horarioDisponible = db.HorariosDisponibles.Include("Horario").FirstOrDefault(x => x.Id == model.TurnoViewModel.Horario.Id); //var horarioDisponible = _db.HorariosDisponibles.Where(x => x.Disponible == true).OrderBy(x => x.Dia).Include(h => h.Horario).Include(e => e.Horario.Especialista).FirstOrDefault(x => x.Id == HorarioDisponible.Id); //.Find(Id); Turno relacion = new Turno(); bool existeRelacion = false; foreach (Turno relaciones in db.Turnos.Include("Paciente").Include("Especialista")) { if (relaciones.Especialista.EspecialidadId == horarioDisponible.Horario.EspecialistaId && relaciones.Paciente.Id == paciente.Id) { existeRelacion = true; relacion = relaciones; } } if (existeRelacion != true) { relacion.Especialista = horarioDisponible.Horario.Especialista; relacion.Paciente = paciente; relacion.Dia = horarioDisponible.Dia; relacion.HoraInicio = horarioDisponible.HoraInicio; relacion.HoraFin = horarioDisponible.HoraFin; relacion.EstadoTurno = Estado.Pendiente; horarioDisponible.Disponible = EstadoHorario.Ocupado; db.Turnos.Add(relacion); db.SaveChanges(); return(RedirectToAction("Dashboard", "Home")); } else { relacion.Especialista = horarioDisponible.Horario.Especialista; relacion.Paciente = paciente; relacion.Dia = horarioDisponible.Dia; relacion.HoraInicio = horarioDisponible.HoraInicio; relacion.HoraFin = horarioDisponible.HoraFin; relacion.EstadoTurno = Estado.Pendiente; horarioDisponible.Disponible = EstadoHorario.Ocupado; db.Turnos.Add(relacion); db.SaveChanges(); return(RedirectToAction("Dashboard", "Home")); } } return(View(model)); }
public ActionResult ReservarTurno(string id, string espec) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var showhorario = db.HorariosDisponibles.Where(x => x.Id == id).FirstOrDefault(); var especialista = db.Especialistas.Where(x => x.Id == espec).FirstOrDefault(); if (showhorario == null) { return(HttpNotFound()); } var tipotarjeta = from TipoTarjeta d in Enum.GetValues(typeof(TipoTarjeta)) select new { IdTipoTarjeta = (int)d, Name = d.ToString() }; var mestarjeta = from Mes d in Enum.GetValues(typeof(Mes)) select new { IdMesTarjeta = (int)d, Name = (int)Enum.Parse(typeof(Mes), d.ToString()) }; var anotarjeta = from AnoExpiracion d in Enum.GetValues(typeof(AnoExpiracion)) select new { IdAnoExp = (int)d, Name = (int)Enum.Parse(typeof(AnoExpiracion), d.ToString()) }; ViewBag.IdTipoTarjeta = new SelectList(tipotarjeta, "IdTipoTarjeta", "Name"); ViewBag.IdMesTarjeta = new SelectList(mestarjeta, "IdMesTarjeta", "Name"); ViewBag.IdAnoExp = new SelectList(anotarjeta, "IdAnoExp", "Name"); ViewBag.IdHorarioShowView = showhorario.Id; ViewBag.IdEspecislistaShowView = especialista.Id; var model = new TurnoReservaViewModel { TurnoViewModel = new TurnoViewModel { Horario = db.HorariosDisponibles.Include("Horario").Single(x => x.Id == showhorario.Id), }, TarjetaViewModel = new TarjetaViewModel() }; return(View(model)); }