コード例 #1
0
        public async Task <Guid> Handle(CreateNurseCommand request, CancellationToken cancellationToken)
        {
            var clinic = await _clinicRepository.GetByIdAsync(new ClinicId(request.ClinicId));

            var nurse = clinic.AddNewNurse(request.Firstname, request.Lastname, request.DateOfBirth);

            await _medicalRepository.AddAsync(nurse);

            await _medicalRepository.Save();

            return(nurse.Id.Value);
        }
コード例 #2
0
        public async Task <Guid> Handle(CreateDoctorCommand request, CancellationToken cancellationToken)
        {
            var clinic = await _clinicRepository.GetByIdAsync(new ClinicId(request.ClinicId));

            var nursesIds = request.NursesIds.Select(x => new MedicalStuffId(x)).ToList();

            var calendar = new Calendar($"{request.Firstname}'s Calendar", nursesIds);
            await _calendarRepository.Add(calendar);

            var doctor = clinic.AddNewDoctor(request.Firstname, request.Lastname, request.DateOfBirth, calendar.Id);

            await _medicalRepository.AddAsync(doctor);

            await _calendarRepository.Save();

            await _medicalRepository.Save();

            return(doctor.Id.Value);
        }