Пример #1
0
        public async Task <IActionResult> Index()
        {
            var doctor = await _db.Doctors
                         .Include(a => a.WeekDays)
                         .FirstOrDefaultAsync(a => a.Username.Equals(User.Identity.Name));

            var todayReserves = await _db.Reservations
                                .Include(a => a.Patient)
                                .OrderBy(a => a.ReserveDate)
                                .Where(a =>
                                       a.Doctor.Username.Equals(doctor.Username) &&
                                       a.ReserveDate.Day.Equals(DateTime.Now.Day) &&
                                       a.ReserveStatus.Contains("در انتظار ویزیت"))
                                .ToListAsync();

            var lastVisitedPatients = await _db.Visits
                                      .Include(a => a.Reservation)
                                      .ThenInclude(a => a.Patient)
                                      .OrderByDescending(a => a.Reservation.ReserveDate)
                                      .Where(a => a.Reservation.DoctorId.Equals(doctor.Id))
                                      .Take(4)
                                      .ToListAsync();

            var reserveVisitVm = new ReserveVisitViewModel()
            {
                Reserves = todayReserves,
                Visits   = lastVisitedPatients
            };

            var isWeekDayEmpty = doctor.WeekDays
                                 .All(a =>
                                      a.EightTen.Equals("خالی") &&
                                      a.TenTwelve.Equals("خالی") &&
                                      a.TwelveFourteen.Equals("خالی") &&
                                      a.FourteenSixteen.Equals("خالی"));

            ViewBag.IsWeekDayEmpty = isWeekDayEmpty;

            ViewBag.TotalVisits = await _db.Visits
                                  .CountAsync(a => a.Reservation.DoctorId.Equals(doctor.Id));

            ViewBag.TotalReserves = await _db.Reservations
                                    .CountAsync(a =>
                                                a.DoctorId.Equals(doctor.Id) &&
                                                a.ReserveStatus.Contains("در انتظار ویزیت") &&
                                                a.ReserveDate >= DateTime.Now);

            var visits = await _db.Visits
                         .Where(a => a.Reservation.DoctorId.Equals(doctor.Id))
                         .ToListAsync();

            ViewBag.MonthlyVisits = visits.Count(visit => (visit.Reservation.ReserveDate - DateTime.Now).TotalDays < 30);;

            return(View(reserveVisitVm));
        }
Пример #2
0
        public async Task <IActionResult> Index()
        {
            var patient = await _db.Patients.FirstOrDefaultAsync(a => a.Username.Equals(User.Identity.Name));

            var visits = await _db.Visits
                         .Include(a => a.Prescription)
                         .Include(a => a.Reservation)
                         .ThenInclude(a => a.Doctor)
                         .Where(a => a.Reservation.PatientId.Equals(patient.Id)).ToListAsync();

            ViewBag.TotalVisitsCount   = visits.Count;
            ViewBag.TotalReservesCount = await _db.Reservations
                                         .Where(a =>
                                                a.PatientId.Equals(patient.Id) && a.ReserveStatus.Contains("در انتظار ویزیت") &&
                                                a.ReserveDate >= DateTime.Now)
                                         .CountAsync();

            ViewBag.MonthlyVisitsCount =
                visits.Count(visit => (visit.Reservation.ReserveDate - DateTime.Now).TotalDays < 30);

            var reserves = await _db.Reservations.Include(a => a.Doctor)
                           .Where(a =>
                                  a.Patient.Username.Equals(User.Identity.Name) &&
                                  a.ReserveDate.Hour >= DateTime.Now.Hour &&
                                  a.ReserveDate.Day == DateTime.Now.Day &&
                                  a.ReserveStatus.Contains("در انتظار ویزیت"))
                           .ToListAsync();

            var reserveVisitViewModel = new ReserveVisitViewModel()
            {
                Reserves = reserves,
                Visits   = visits
            };

            return(View(reserveVisitViewModel));
        }