public async Task HandleAsync(AddMedicalScheme command, ICorrelationContext context) { MedicalScheme scheme = await _schemesRepo.GetAsync(x => x.SchemeName == command.SchemeName); if (scheme != null) { throw new MedParkException("scheme_already_exists", $"Medical scheme with the name {command.SchemeName} already exists."); } scheme = new MedicalScheme(command.Id) { SchemeName = command.SchemeName }; await _schemesRepo.AddAsync(scheme); }
public async Task HandleAsync(AddPracticeAcceptedMedicalScheme command, ICorrelationContext context) { MedicalScheme selectedScheme = await _schemesRepo.GetAsync(command.SchemeId); if (selectedScheme == null) { throw new MedParkException($"Invalid medical scheme Id ({command.SchemeId}) for new accepted scheme."); } AcceptedMedicalScheme acceptedScheme = new AcceptedMedicalScheme(command.Id) { PracticeId = command.PracticeId, SchemeId = command.SchemeId, SchemeName = command.SchemeName, DateEffective = command.DateEffective, DateEnd = command.DateEnd, IsActive = command.IsActive }; //Save accepted medical scheme for medical practice await _acceptedSchemesRepo.AddAsync(acceptedScheme); }
public async Task <MedicalSchemeDTO> HandleAsync(MedicalSchemeQuery query) { MedicalScheme scheme = await _schemesRepo.GetAsync(query.SchemeId); return(_mapper.Map <MedicalSchemeDTO>(scheme)); }