private async Task <Registration> GetRegistrationForCertificateAsync(
     Certificate certificate,
     CancellationToken cancellationToken)
 {
     return(await _registrationRetrievalService
            .FindRegistrationAsync(new RegistrationFilter
     {
         HavingCertificateOnly = true,
         CertificateId = certificate.CertificateId,
     }, cancellationToken : cancellationToken)
            ?? throw new NotFoundException(
                $"Registration not found for certificate {certificate.CertificateId}"));
 }
Beispiel #2
0
        public async Task <ActionResult <RegistrationDto> > CreateNewRegistration(
            [FromBody] NewRegistrationDto dto,
            CancellationToken cancellationToken)
        {
            try
            {
                var registration = await _registrationManagementService.CreateRegistrationAsync(dto.EventId, dto.UserId, dto.CopyTo, cancellationToken);

                return(Ok(new RegistrationDto(registration)));
            }
            catch (DuplicateException)
            {
                var registration = await _registrationRetrievalService.FindRegistrationAsync(new RegistrationFilter
                {
                    EventInfoId = dto.EventId,
                    UserId      = dto.UserId
                }, null, cancellationToken);

                return(Ok(new RegistrationDto(registration)));
            }
        }