Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 11
0
 public Task CreateAgreementEvent(AgreementEvent agreementEvent)
 {
     return(Task.CompletedTask);
 }