public async Task <Test> Get(Guid id) { var test = await _testLogic.GetAsync(id.ToString()); if (test == null) { throw new FulcrumNotFoundException(id.ToString()); } return(test); }
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); } } }