Пример #1
0
        public async Task <Result <CertificationModel> > Handle(CreateCertification request, CancellationToken cancellationToken)
        {
            var isValid = await _validator.IsValidAsync(request);

            if (!isValid)
            {
                return(Result.Failure <CertificationModel>("Validation failed"));
            }

            var user = await _context.Users.FirstAsync(u => u.Sub == request.UserSub, cancellationToken);

            var certification = new Certification
            {
                Name             = request.Name,
                ExpirationDate   = request.ExpirationDate,
                User             = user,
                IssuingAuthority = request.IssuingAuthority
            };

            await _context.Certifications.AddAsync(certification, cancellationToken);

            await _context.SaveChangesAsync(cancellationToken);

            return(new CertificationModel
            {
                Id = certification.Id,
                Name = certification.Name,
                ExpirationDate = certification.ExpirationDate,
                IssuingAuthority = certification.IssuingAuthority
            });
        }
Пример #2
0
        public async Task <ActionResult <CertificationModel> > CreateNewCertificationAsync([FromBody] CertificationRequest certification)
        {
            var sub     = User.Claims.FirstOrDefault(c => c.Type == "sub")?.Value;
            var command = new CreateCertification(sub, certification);
            var result  = await _mediator.Send(command);

            if (result.IsFailure)
            {
                return(BadRequest());
            }

            return(Ok(result.Value));
        }