static void Main(string[] args) { var rabbitMqClient = new RabbitMqClient("Measurement"); var households = new List <Household> { new Household(1, new List <MeasurementDevice> { new MeasurementDevice(Guid.NewGuid(), 1, MeasurementCategory.Water, "ABCDE123", "Grundfos", 111), new MeasurementDevice(Guid.NewGuid(), 1, MeasurementCategory.Heat, "ABCDE123", "Grundfos", 222), new MeasurementDevice(Guid.NewGuid(), 1, MeasurementCategory.Electricity, "ABCDE123", "Grundfos", 333), }), new Household(2, new List <MeasurementDevice> { new MeasurementDevice(Guid.NewGuid(), 2, MeasurementCategory.Water, "FGHIJ456", "Kamstrup", 111), new MeasurementDevice(Guid.NewGuid(), 2, MeasurementCategory.Heat, "FGHIJ456", "Kamstrup", 222), new MeasurementDevice(Guid.NewGuid(), 2, MeasurementCategory.Electricity, "FGHIJ456", "Kamstrup", 333), }), new Household(3, new List <MeasurementDevice> { new MeasurementDevice(Guid.NewGuid(), 3, MeasurementCategory.Heat, "UVXYZ789", "Kamstrup", 222), new MeasurementDevice(Guid.NewGuid(), 3, MeasurementCategory.Electricity, "UVXYZ789", "Kamstrup", 333), }) }; while (true) { MeasurementReport(households, rabbitMqClient); StatusReport(households, rabbitMqClient); Thread.Sleep(8000); }
static void StatusReport(IEnumerable <Household> households, RabbitMqClient rabbitMqClient) { foreach (var house in households) { foreach (var measurementDevice in house.Devices) { var newStatus = measurementDevice.GenerateAStatusReport(house.ID); rabbitMqClient.SendMessage(message: newStatus, routingKey: "status"); } } }
static void MeasurementReport(IEnumerable <Household> households, RabbitMqClient rabbitMqClient) { foreach (var house in households) { foreach (var measurementDevice in house.Devices) { var newMeasurement = measurementDevice.GenerateAMeasurement(); rabbitMqClient.SendMessage(message: newMeasurement, routingKey: newMeasurement.ExpenditureType.ToString().ToLower()); } } }