public async Task <string> MakeAnAppointmentAnalysis(LaboratoryAppointment app, DateTime selectedDate, TimeSpan receptionTime) { app.Day = selectedDate; app.EndTime = app.StartTime + receptionTime; List <LaboratoryAppointment> checkTime = db.LaboratoryAppointments.Where(bt => bt.Id == app.Id && bt.StartTime == app.StartTime && bt.Day == app.Day).ToList(); if (checkTime.Count > 0) { return("<h3>Время приёма уже занято! Выберите другое время!</h3>"); } List <LaboratoryAppointment> apps = db.LaboratoryAppointments.Where(ap => ap.IdPatient == app.IdPatient && ap.Day == app.Day && !((ap.StartTime < app.StartTime && ap.EndTime <= app.StartTime) || (ap.StartTime >= app.EndTime && ap.EndTime > app.EndTime))).ToList <LaboratoryAppointment>(); if (apps.Count != 0) { return("<h3>Извините, но на это время вы записаны на другой анализ!</h3>"); } db.LaboratoryAppointments.Add(app); await db.SaveChangesAsync(); User patient = await db.Patients.FindAsync(app.IdPatient); MailSender sender = new MailSender(patient.Email); sender.SendMessageForMakeAppointment(patient, selectedDate, app.StartTime, MailSender.UserType.Doctor); return($"<h3>Запись была осуществлена успешно!</h3><br/><a href={Url.Action("Index","Cabinet")}>В личный кабинет</a>"); }
public async Task <RedirectToRouteResult> CancelAppointmentAnalysis(int id) { LaboratoryAppointment app = await db.LaboratoryAppointments.FindAsync(id); db.Entry(app).State = EntityState.Deleted; await db.SaveChangesAsync(); return(RedirectToAction("Index", "Cabinet")); }
public async Task <ActionResult> ShowAppointment(int id) { LaboratoryAppointment la = await db.LaboratoryAppointments.FindAsync(id); return(View(la)); }