예제 #1
0
        public async Task <Test> Get(Guid id)
        {
            var test = await _testLogic.GetAsync(id.ToString());

            if (test == null)
            {
                throw new FulcrumNotFoundException(id.ToString());
            }
            return(test);
        }
예제 #2
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);
                }
            }
        }