public async Task <PageEnvelope <Invoice> > ReadAllWithPagingAsync(int offset, int?limit = null, CancellationToken token = default(CancellationToken))
 {
     ServiceContract.RequireGreaterThanOrEqualTo(0, offset, nameof(offset));
     if (limit.HasValue)
     {
         ServiceContract.RequireGreaterThanOrEqualTo(0, limit.Value, nameof(limit));
     }
     return(await Capability.InvoiceService.ReadAllWithPagingAsync(offset, limit, token));
 }
        public Task CatchAllEventsAsync(string entityName, string eventName, int majorVersion, dynamic eventBody)
        {
            ServiceContract.RequireNotNullOrWhitespace(entityName, nameof(entityName));
            ServiceContract.RequireNotNullOrWhitespace(eventName, nameof(eventName));
            ServiceContract.RequireGreaterThanOrEqualTo(1, majorVersion, nameof(majorVersion));
            ServiceContract.RequireNotNull(eventBody, nameof(eventBody));


            throw new FulcrumNotImplementedException($"The event {entityName}.{eventName} version {majorVersion} is not yet supported.");
        }
        public async Task PublishMockAsync(string entityName, string eventName, int majorVersion, int minorVersion, JObject content)
        {
            ServiceContract.RequireNotNullOrWhitespace(entityName, nameof(entityName));
            ServiceContract.RequireNotNullOrWhitespace(eventName, nameof(eventName));
            ServiceContract.RequireGreaterThanOrEqualTo(1, majorVersion, nameof(majorVersion));
            ServiceContract.RequireGreaterThanOrEqualTo(0, minorVersion, nameof(minorVersion));
            FulcrumAssert.IsTrue(FulcrumApplication.IsInDevelopment, $"This method can only be called in run time level Development. The run time level was {FulcrumApplication.Setup.RunTimeLevel}");
            var correlationId = new CorrelationIdValueProvider().CorrelationId;

            await new BusinessEvents(_tokenRefresher.GetServiceClient(), _subscribers).PublishAsync(entityName, eventName, majorVersion, minorVersion, content, correlationId);
        }
        public void GreaterThanOrEqualOk()
        {
            const string parameterName = "parameterName";

            try
            {
                ServiceContract.RequireGreaterThanOrEqualTo(1, 1, parameterName);
            }
            catch (Exception e)
            {
                UT.Assert.Fail($"Expected no exception but got {e.Message}.");
            }
        }
示例#5
0
        public void GreaterThanOrEqualOk()
        {
            const string parameterName = "parameterName";

            try
            {
                ServiceContract.RequireGreaterThanOrEqualTo(1, 1, parameterName);
            }
            catch (Exception e)
            {
                Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Fail($"Expected no exception but got {e.Message}.");
            }
        }
        public void GreaterThanOrEqualFail()
        {
            const string parameterName = "parameterName";

            try
            {
                ServiceContract.RequireGreaterThanOrEqualTo(2, 1, parameterName);
                UT.Assert.Fail("An exception should have been thrown");
            }
            catch (FulcrumServiceContractException fulcrumException)
            {
                UT.Assert.IsTrue(fulcrumException.TechnicalMessage.Contains(parameterName));
            }
            catch (Exception e)
            {
                UT.Assert.Fail($"Expected a specific FulcrumException but got {e.GetType().FullName}.");
            }
        }
示例#7
0
        public async Task Publish(string entityName, string eventName, int major, int minor, JObject content)
        {
            ServiceContract.RequireNotNull(entityName, nameof(entityName));
            ServiceContract.RequireNotNull(eventName, nameof(eventName));
            ServiceContract.RequireGreaterThan(0, major, nameof(major));
            ServiceContract.RequireGreaterThanOrEqualTo(0, minor, nameof(minor));
            ServiceContract.RequireNotNull(content, nameof(content));

            var correlationId = FulcrumApplication.Context.CorrelationId;
            var test          = await _testLogic.GetAsync(correlationId);

            if (test != null)
            {
                try
                {
                    var client  = FulcrumApplication.Context.CallingClientName;
                    var payload = JObject.FromObject(content);
                    var result  = await _integrationApiClient.TestBenchPublish(entityName, eventName, major, minor, client, payload);

                    if (result.Verified)
                    {
                        await _integrationApiClient.PublishEvent(entityName, eventName, major, minor, client, payload);

                        await _testLogic.SetStateAsync(test, StateEnum.Ok, "Event intercepted and verified with BE Test bench");
                    }
                    else
                    {
                        var message = string.Join(", ", result.Errors) +
                                      $" | Contract: {JsonConvert.SerializeObject(result.Contract)}" +
                                      $" | Payload: {JsonConvert.SerializeObject(result.Payload)}";
                        await _testLogic.SetStateAsync(test, StateEnum.Failed, message);
                    }
                }
                catch (Exception e)
                {
                    await _testLogic.SetStateAsync(test, StateEnum.Failed, e.Message);
                }
            }
        }