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