private static void SetPowerFailureEventValue(ref PowerFailureEvent powerFailureEvent, string name, string value) { PropertyInfo propertyInfo; propertyInfo = GetPowerFailureEventProperty(name); var convertedValue = GetConvertedPropertyValue(propertyInfo, value); propertyInfo.SetValue(powerFailureEvent, convertedValue); }
private static void SetPowerFailureEvents(ref Telegram telegram, IEnumerable <string> values) { List <PowerFailureEvent> powerFailureEvents = new List <PowerFailureEvent>(); for (int i = 2; i <= (values.Count() - 2); i += 2) { PowerFailureEvent powerFailureEvent = new PowerFailureEvent(); SetPowerFailureEventValue(ref powerFailureEvent, "Timestamp", values.ElementAtOrDefault(i)); SetPowerFailureEventValue(ref powerFailureEvent, "Duration", values.ElementAtOrDefault(i + 1)); powerFailureEvents.Add(powerFailureEvent); } var propName = GetPropertiesWithKey(obisErrorLog).ElementAtOrDefault(0); PropertyInfo propertyInfo = GetTelegramProperty(propName); propertyInfo.SetValue(telegram, powerFailureEvents); }