public async Task <IActionResult> GetRequest([FromQuery] string token)
        {
            EmailQueueToken decoded;

            try
            {
                decoded = EmailQueueToken.DecodeString(token);
            }
            catch (Exception ex)
            {
                _logger.LogWarning("Failed to parse message token {0}: {1}", token, ex.Message);
                return(BadRequest());
            }

            var response = new TokenEnquiryResponse();

            response.Submitted = decoded.TimeStamp;

            var entries = await _logReader.GetProcessingLogsAsync(decoded);

            if (entries.Any())
            {
                var latest = entries.OrderBy(e => e.RetryCount).Last();
                response.Status        = latest.Status;
                response.LastProcessed = latest.ProcessFinishedUtc;
                response.RetryCount    = latest.RetryCount;
                response.ErrorMessage  = latest.ErrorMessage;
            }

            return(Json(response));
        }
示例#2
0
        public void DecodeBytes_ShouldDeserializeValidString()
        {
            // arrange
            var original = EmailQueueToken.Create(Application1);
            var base64   = original.EncodeString();

            // act
            var decoded = EmailQueueToken.DecodeString(base64);

            // assert
            Assert.Equal(original.TimeStamp, decoded.TimeStamp);
            Assert.Equal(original.ApplicationId, decoded.ApplicationId);
            Assert.Equal(original.RequestId, decoded.RequestId);
        }
示例#3
0
 public EmailQueueToken Decode() => EmailQueueToken.DecodeString(Token);