/// <summary>
 /// used to remove circular reference (required for serialization)
 /// </summary>
 /// <param name="meterReading"></param>
 public MeterReading(MeterReading meterReading)
 {
     this.ChannelNumber   = meterReading.ChannelNumber;
     this.ReadingDate     = meterReading.ReadingDate;
     this.Value           = meterReading.Value;
     this.ReadingInterval = meterReading.ReadingInterval;
     this.SequenceNumber  = meterReading.SequenceNumber;
 }
        public MeterReading GetPeakReading(int meterId)
        {
            var readings = from m in this.Context.MeterReadings
                           where m.MeterId == meterId
                           select m;

            decimal      max        = 0;
            MeterReading maxReading = null;

            // TODO MTM there's probably a slick linq iterator to handle this....
            foreach (MeterReading r in readings)
            {
                if (r.Value > max)
                {
                    max        = r.Value;
                    maxReading = r;
                }
            }

            return(maxReading);
        }