public async Task <IHttpActionResult> Post(AgreementEvent request) { await _orchestrator.CreateEvent(request); // 201 for list of all events return(CreatedAtRoute("GetAllAgreementEvents", new {}, default(AgreementEvent))); }
protected override async Task HandleCore(CreateAgreementEventCommand command) { _logger.Info($"Received message {command.Event}", providerId: command.ProviderId, @event: command.Event); Validate(command); try { var newAgreementEvent = new AgreementEvent { Event = command.Event, CreatedOn = DateTime.UtcNow, ProviderId = command.ProviderId, ContractType = command.ContractType }; await _agreementEventRepository.Create(newAgreementEvent); _logger.Info($"Finished processing message {command.Event}"); } catch (Exception ex) { _logger.Error(ex, $"Error processing message {command.Event} - {ex.Message}", providerId: command.ProviderId, @event: command.Event); throw; } }
public async Task ThenTheEventIsCreated() { var request = new AgreementEvent { ContractType = "MainProvider", Event = "Test", ProviderId = "ZZZ999" }; await Orchestrator.CreateEvent(request); EventsLogger.Verify(x => x.Info($"Creating Agreement Event ({request.Event}), Contract: {request.ContractType}, Provider: {request.ProviderId}", null, request.ProviderId, request.Event)); Mediator.Verify(m => m.SendAsync(It.Is <CreateAgreementEventCommand>(x => x.ContractType == request.ContractType && x.Event == request.Event && x.ProviderId == request.ProviderId))); }
public void AndAnExceptionOccursThenTheErrorIsLogged() { var request = new AgreementEvent(); var exception = new Exception("Exception"); Mediator.Setup(m => m.SendAsync(It.IsAny <CreateAgreementEventCommand>())).ThrowsAsync(exception); Assert.ThrowsAsync <Exception>(() => Orchestrator.CreateEvent(request)); EventsLogger.Verify(x => x.Error(exception, exception.Message, null, null, null)); }
public void AndValidationFailsThenTheFailureIsLogged() { var request = new AgreementEvent(); var validationException = new ValidationException("Exception"); Mediator.Setup(m => m.SendAsync(It.IsAny <CreateAgreementEventCommand>())).ThrowsAsync(validationException); Assert.ThrowsAsync <ValidationException>(() => Orchestrator.CreateEvent(request)); EventsLogger.Verify(x => x.Warn(validationException, "Invalid request", request.ContractType, request.ProviderId, request.Event)); }
private void PublishAgreementInitializedEvent(string ukprn) { var agreementEvent = new AgreementEvent { ContractType = NewRoatpProviderContractType, Event = NewRoatpProviderEvent, ProviderId = ukprn }; _log.Info($"FCS Provider Event", new Dictionary <string, object> { { "Ukprn", agreementEvent.ProviderId } }); Task.WaitAll(_client.CreateAgreementEvent(agreementEvent)); }
public async Task CreateAgreementEvent() { var input = new AgreementEvent(); var employerRequest = new TestRequest(new Uri(ExpectedApiBaseUrl + "api/events/engagements"), JsonConvert.SerializeObject(input)); _fakeHandler.AddFakeResponse(employerRequest, new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(string.Empty) }); await _sut.CreateAgreementEvent(input); Assert.Pass(); }
public async Task CreateEvent(AgreementEvent request) { try { _logger.Info($"Creating Agreement Event ({request.Event}), Contract: {request.ContractType}, Provider: {request.ProviderId}", providerId: request.ProviderId, @event: request.Event); await _mediator.SendAsync(new CreateAgreementEventCommand { Event = request.Event, ProviderId = request.ProviderId, ContractType = request.ContractType }); } catch (ValidationException ex) { _logger.Warn(ex, "Invalid request", providerId: request.ProviderId, @event: request.Event); throw; } catch (Exception ex) { _logger.Error(ex, ex.Message); throw; } }
public async Task Create(AgreementEvent @event) { await WithConnection(async c => await c.ExecuteAsync($"INSERT INTO [dbo].[{TableName}](Event, CreatedOn, ProviderId, ContractType) " + $"VALUES (@event, @createdOn, @providerId, @contractType);", @event)); }
/// <summary> /// Creates a new AgreementEvent /// </summary> /// <param name="agreementEvent">AgreementEvent to create</param> /// <returns></returns> public async Task CreateAgreementEvent(AgreementEvent agreementEvent) { var url = $"{_configuration.BaseUrl}api/events/engagements"; await PostEvent(url, agreementEvent); }
public Task CreateAgreementEvent(AgreementEvent agreementEvent) { return(Task.CompletedTask); }