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));
        }