public MovementTransport(ReadingBase reader, int clientbuild, bool readTime2) { var position = reader.Position; reader.Position = position; if (clientbuild <= 9551) { TransportGUID = new WoWGuid(reader.ReadUInt64("Transport GUID")); } else { TransportGUID = reader.ReadPackedWoWGuid("Transport GUID"); } TransportOffset = reader.ReadVector4(); TransportTime = reader.ReadUInt32("Transport Time"); if (clientbuild >= 9183) TransportSeat = reader.ReadByte("Transport Seat"); else TransportSeat = 0; if (readTime2) TransportTime2 = reader.ReadUInt32("Transport Time2"); }
public static Dictionary <string, List <ReadingBase> > GetDailySummary(WeatherValueType valueType, int deviceId, DateTime startDate, DateTime endDate) { var summaryList = new Dictionary <string, List <ReadingBase> >(); summaryList["Average"] = new List <ReadingBase>(); summaryList["Minimum"] = new List <ReadingBase>(); summaryList["Maximum"] = new List <ReadingBase>(); for (var year = startDate.Year; year <= endDate.Year; year++) { using (var archiveData = new WeatherArchiveData(year)) { var groupList = archiveData.Readings .Where(r => r.ReadTime >= startDate && r.ReadTime <= endDate && r.DeviceId == deviceId && r.Type == (int)valueType) .GroupBy(r => DbFunctions.TruncateTime(r.ReadTime)) .Select(g => new { ReadTime = g.Key, Readings = g.Select(r => r.Value) }).ToList(); summaryList["Average"].AddRange(groupList.Select(d => ReadingBase.CreateReading(valueType, d.ReadTime.Value.DateTime, d.Readings.Average()))); summaryList["Minimum"].AddRange(groupList.Select(d => ReadingBase.CreateReading(valueType, d.ReadTime.Value.DateTime, d.Readings.Min()))); summaryList["Maximum"].AddRange(groupList.Select(d => ReadingBase.CreateReading(valueType, d.ReadTime.Value.DateTime, d.Readings.Max()))); } } return(summaryList); }
public MovementTransport(ReadingBase reader, int clientbuild, bool readTransportTime2) { TransportGUID = reader.ReadPackedGuid("Transport GUID"); TransportOffset = reader.ReadVector4(); TransportTime = reader.ReadUInt32("Transport Time"); if (clientbuild >= 9183) TransportSeat = reader.ReadByte("Transport Seat"); else TransportSeat = 0; if (readTransportTime2) TransportTime2 = reader.ReadUInt32("Transport Time2"); }
private static List <ReadingBase> LoadHistory(WeatherValueType valueType, int deviceId, DateTimeOffset start, DateTimeOffset end) { var history = new List <ReadingBase>(); for (var year = start.Year; year <= end.Year; year++) { using (var archiveData = new WeatherArchiveData(year)) { var readings = archiveData.Readings; var yearlyHistory = readings.Where(r => r.DeviceId == deviceId && r.Type == (int)valueType && r.ReadTime >= start && r.ReadTime <= end).ToList(); history.AddRange(yearlyHistory.Select(r => ReadingBase.CreateReading(valueType, r.ReadTime.DateTime, r.Value))); } } return(history); }
public override void SplitReadingSub(ReadingBase oldReading, DateTime splitTime, ReadingBase newReading1, ReadingBase newReading2) { if (((EnergyReading)newReading1).EnergyToday.HasValue && ((EnergyReading)newReading2).EnergyDelta >= InverterAlgorithm.EnergyTodayEnergyMargin) ((EnergyReading)newReading1).EnergyToday -= ((EnergyReading)newReading2).EnergyDelta; if (((EnergyReading)newReading1).EnergyTotal.HasValue && ((EnergyReading)newReading2).EnergyDelta >= InverterAlgorithm.EnergyTotalEnergyMargin) ((EnergyReading)newReading1).EnergyTotal -= ((EnergyReading)newReading2).EnergyDelta; }
public override void SplitReadingSub(ReadingBase oldReading, DateTime splitTime, ReadingBase newReading1, ReadingBase newReading2) { newReading1.IsConsolidationReading = true; newReading2.IsConsolidationReading = true; if (((EnergyReading)newReading1).EnergyToday.HasValue) ((EnergyReading)newReading1).EnergyToday -= ((EnergyReading)newReading2).EnergyDelta; if (((EnergyReading)newReading1).EnergyTotal.HasValue) ((EnergyReading)newReading1).EnergyTotal -= ((EnergyReading)newReading2).EnergyDelta; }