public async Task <IActionResult> Create([Bind("Id,StartDate,ReservationId,PatientId,DiseasId,Complaint,Medication")] HistoryCreateVM modell) { bool isValidd = true; int userId = Convert.ToInt32(User.FindFirst(ClaimTypes.NameIdentifier).Value); var docc = await _context.Doctor.FirstOrDefaultAsync(x => x.UserId == userId); if (docc == null) { ModelState.AddModelError(string.Empty, "Doctor Does Not Exist!"); isValidd = false; } if (ModelState.IsValid && isValidd) { var model = new PatientHistory { DiseasId = modell.DiseasId, DoctorId = docc.Id, EndDate = DateTime.Now, PolyclinicId = docc.PolyclinicId, ReservationId = modell.ReservationId, StartDate = modell.StartDate, PatientId = modell.PatientId, Complaint = modell.Complaint }; await _context.PatientHistory.AddAsync(model); await _context.SaveChangesAsync(); List <PatientHistoryMedication> med = new List <PatientHistoryMedication>(); foreach (var item in modell.Medication) { med.Add(new PatientHistoryMedication { MedicationId = item, PatientHistoryId = model.Id }); } await _context.PatientHistoryMedication.AddRangeAsync(med); await _context.SaveChangesAsync(); var ress = await _context.Reservation.FirstOrDefaultAsync(x => x.Id == modell.ReservationId); ress.IsCompleted = true; _context.Reservation.Update(ress); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["DiseasId"] = new SelectList(_context.Diseas, "Id", "Name"); ViewData["MedicationId"] = _context.Medication.ToList(); return(View(modell)); }
// GET: PatientHistory/Create public async Task <IActionResult> Create(int reservationId) { var ress = await _context.Reservation .Include(x => x.Polyclinic) .Include(x => x.Patient).ThenInclude(x => x.User) .Include(x => x.Doctor).ThenInclude(x => x.User) .FirstOrDefaultAsync(x => x.Id == reservationId); var historyy = new HistoryCreateVM { StartDate = DateTime.Now, Reservation = ress }; ViewData["DiseasId"] = new SelectList(_context.Diseas, "Id", "Name"); ViewData["MedicationId"] = _context.Medication.ToList(); return(View(historyy)); }