コード例 #1
0
        public async Task SubmitVisit(string name, CreateVisitStep3ViewModel model, CancellationToken cancellationToken)
        {
            var appointments = await _appointmentsRepository.ListAsync(cancellationToken).ConfigureAwait(false);

            var doctor = await _doctorsRepository.GetAsync(model.DoctorName, cancellationToken).ConfigureAwait(false);

            var startDateTime = new DateTime(model.StartDateTime.Year, model.StartDateTime.Month,
                                             model.StartDateTime.Day, model.TimeOfDay.Hour, model.TimeOfDay.Minute, 0);

            var hasAlready = appointments.Any(a => a.Doctor.Name == model.DoctorName && a.StartDateTime == startDateTime);

            if (hasAlready)
            {
                throw new Exception("Doktor jest w tym czasie zajęty.");
            }

            var patient = await _patientsRepository.GetAsync(name, cancellationToken);

            var appointment = new Appointment
            {
                StartDateTime     = startDateTime,
                Doctor            = doctor,
                Patient           = patient,
                AppointmentStatus = AppointmentStatus.New,
                Description       = model.Description
            };

            await _appointmentsRepository.CreateAsync(appointment, cancellationToken).ConfigureAwait(false);
        }
コード例 #2
0
        public async Task <IActionResult> CreateVisitStep3(CreateVisitStep2ViewModel model)
        {
            var correctTime = AppointmentManager.GetAvailableTimes(model.StartDateTime);
            var ccc         = correctTime.Any(d => d.Date.ToString("d") == model.TimeOfDay.ToString("d"));

            if (!ccc)
            {
                ModelState.AddModelError("doctorError", "Niestety, wybrany lekarz jest w tym dniu niedostępny");
            }

            if (!ModelState.IsValid)
            {
            }

            var doctor = await _doctorsRepository.GetDoctorByName(model.DoctorName);

            var createVisitStep3ViewModel = new CreateVisitStep3ViewModel
            {
                StartDateTime = new DateTime(model.StartDateTime.Year, model.StartDateTime.Month,
                                             model.StartDateTime.Day, model.TimeOfDay.Hour, model.TimeOfDay.Minute, 0),
                Doctor      = doctor,
                DoctorName  = model.DoctorName,
                Description = model.Description,
                TimeOfDay   = model.TimeOfDay
            };

            return(View(createVisitStep3ViewModel));
        }
コード例 #3
0
        public async Task <IActionResult> SubmitVisit(CreateVisitStep3ViewModel model)
        {
            try
            {
                await _appService.SubmitVisit(User.Identity.Name, model, CancellationToken.None);
            }
            catch
            {
                return(View("CreateVisitError"));
            }

            return(RedirectToAction("Index", "Home"));
        }
コード例 #4
0
        public async Task <IActionResult> SubmitVisit(CreateVisitStep3ViewModel model)
        {
            var userName = _userManager.GetUserName(User);
            var doctor   = await _doctorsRepository.GetDoctorByName(model.DoctorName);

            var patient = await _patientsRepository.GetPatientByName(userName);

            var appointment = new Appointment
            {
                StartDateTime = new DateTime(model.StartDateTime.Year, model.StartDateTime.Month,
                                             model.StartDateTime.Day, model.TimeOfDay.Hour, model.TimeOfDay.Minute, 0),
                Doctor      = doctor,
                Patient     = patient,
                Status      = Status.New,
                Description = model.Description
            };

            await _appointmentsRepository.AddAppointment(appointment);

            return(RedirectToAction("Index", "Home"));
        }
コード例 #5
0
        public async Task <IActionResult> CreateVisitStep3(CreateVisitStep2ViewModel model)
        {
            CreateVisitStep3ViewModel createVisitStep3ViewModel = await _appService.CreateVisitStepThree(model, CancellationToken.None);

            return(View(createVisitStep3ViewModel));
        }