public async Task <Result <CertificationModel> > Handle(UpdateCertification request, CancellationToken cancellationToken) { var isValid = await _validator.IsValidAsync(request); if (!isValid) { return(Result.Failure <CertificationModel>("Validation failed")); } var certification = await _context.Certifications.FirstAsync(c => c.Id == request.CertificationId, cancellationToken); certification.Name = request.Certification.Name; certification.IssuingAuthority = request.Certification.IssuingAuthority; certification.ExpirationDate = request.Certification.ExpirationDate; await _context.SaveChangesAsync(cancellationToken); return(new CertificationModel { Id = certification.Id, Name = certification.Name, ExpirationDate = certification.ExpirationDate, IssuingAuthority = certification.IssuingAuthority }); }
public async Task <ActionResult <CertificationModel> > UpdateCertificationAsync([FromRoute] Guid certificationId, [FromBody] CertificationRequest certification) { var sub = User.Claims.FirstOrDefault(c => c.Type == "sub")?.Value; var command = new UpdateCertification(sub, certificationId, certification); var result = await _mediator.Send(command); if (result.IsFailure) { return(BadRequest()); } return(Ok(result.Value)); }