public async Task <Maybe <SecuredRequestDto> > GetAsync(ResourceType resourceType, Guid resourceId, string token) { var securedRequest = await _securedRequestRepository .GetByResourceTypeAndIdAndTokenAsync(resourceType, resourceId, token); return(securedRequest.HasNoValue ? new Maybe <SecuredRequestDto>() : new SecuredRequestDto { CreatedAt = securedRequest.Value.CreatedAt, Token = securedRequest.Value.Token, UsedAt = securedRequest.Value.UsedAt, ResourceId = securedRequest.Value.ResourceId, ResourceType = securedRequest.Value.ResourceType.ToString() }); }
public async Task ConsumeAsync(ResourceType resourceType, Guid resourceId, string token) { var securedRequest = await _securedRequestRepository.GetByResourceTypeAndIdAndTokenAsync(resourceType, resourceId, token); if (securedRequest.HasNoValue) { throw new ArgumentException("Resource has not been found for given id."); } securedRequest.Value.Consume(token); await _securedRequestRepository.UpdateAsync(securedRequest.Value); }