/// <summary> </summary> /// <param name="requestEvent">StorageSpaceRequestEvent</param> /// <returns></returns> public async Task GetStorageSpaces(StorageSpaceRequestEvent requestEvent) { if (!requestEvent.IsValid) { InvalidStorageSpaceRequestEvent(requestEvent); } var StorageSpaces = await _StorageSpaceDetailMongoRepository.GetStorageSpaces(new GetStorageSpaceRequest { FacilityId = requestEvent.FacilityId, FormularyId = requestEvent.FormularyId, ISAId = requestEvent.ISAId }); var response = new StorageSpaceResponseEvent { TransactionQueueId = requestEvent.TransactionQueueId, FormularyId = StorageSpaces.FormularyId, MedId = StorageSpaces.ItemId, Devices = StorageSpaces.Devices, Headers = requestEvent.Headers }; _logger.LogInformation(PublishEventType); _logger.LogInformation($"{nameof(StorageSpaceResponseEvent.TransactionQueueId)}: {response.TransactionQueueId};"); _logger.LogInformation($"{CorrelationParentId}: {response.Headers.FirstOrDefault(_ => _.Key.ToLower() == CorrelationParentId.ToLower()).Value}"); _eventBus.Publish(_configuration.KafkaResponseTopic, response, requestEvent.Headers); _logger.LogInformation($"{FollowingDataSuccessfullyPublishedToEventBus}: {response}"); }
private void InvalidStorageSpaceRequestEvent(StorageSpaceRequestEvent request) { var propertiesWithInvalidValues = request.GetRuleViolations().Select(a => a.PropertyName); var properties = request.GetType().GetProperties().Where(_ => propertiesWithInvalidValues.Contains(_.Name)); foreach (var property in properties) { _logger.LogError($"{property.Name} = {property.GetValue(request, null)};"); } // following line throws an ApplicationException request.OnValidate(); }