public async Task <ActionResult <IImmutableList <CertificationModel> > > GetCertificationsAsync() { var sub = User.Claims.FirstOrDefault(c => c.Type == "sub")?.Value; var query = new GetCertifications(sub); var result = await _mediator.Send(query); if (result.IsFailure) { return(BadRequest()); } return(Ok(result.Value)); }
public async Task <IImmutableList <CertificationModel> > Handle(GetCertifications request, CancellationToken cancellationToken) { var certifications = await _context.Certifications .Where(x => x.UserId == request.UserId) .Select(x => new CertificationModel { Id = x.Id, Name = x.Name, IssuingAuthority = x.IssuingAuthority, ExpirationDate = x.ExpirationDate }) .ToListAsync(cancellationToken: cancellationToken); return(certifications.ToImmutableList()); }
public async Task <Result <IImmutableList <CertificationModel> > > Handle(GetCertifications request, CancellationToken cancellationToken) { var isValid = await _validator.IsValidAsync(request); if (!isValid) { return(Result.Failure <IImmutableList <CertificationModel> >("Validation failed")); } var certifications = await _context.Certifications .Where(x => x.User.Sub == request.UserSub) .Select(x => new CertificationModel { Id = x.Id, Name = x.Name, IssuingAuthority = x.IssuingAuthority, ExpirationDate = x.ExpirationDate }) .ToListAsync(cancellationToken); return(certifications.ToImmutableList()); }