public void Initialize(AdoDataConnection connection, VICycleDataGroup viCycleDataGroup, double systemFrequency) { int samplesPerCycle = Transform.CalculateSamplesPerCycle(viCycleDataGroup.VA.RMS, systemFrequency); TableOperations <FaultSegment> faultSegmentTable = new TableOperations <FaultSegment>(connection); RecordRestriction recordRestriction = new RecordRestriction("EventID = {0}", Fault.EventID) & new RecordRestriction("StartTime = {0}", ToDateTime2(connection, Fault.Inception)) & new RecordRestriction("(SELECT Name FROM SegmentType WHERE ID = SegmentTypeID) = 'Fault'"); FaultSegment faultSegment = faultSegmentTable.QueryRecord(recordRestriction); if ((object)faultSegment == null) { throw new InvalidOperationException($"Unable to find fault segment that matches fault summary for event {Fault.EventID}."); } StartSample = faultSegment.StartSample; EndSample = faultSegment.EndSample - samplesPerCycle + 1; CycleDataGroup = Rotate(viCycleDataGroup.ToSubSet(StartSample, EndSample)); DistanceCurve.StartIndex = StartSample; AngleCurve.StartIndex = StartSample; }
public void Initialize(DbAdapterContainer dbAdapterContainer, VICycleDataGroup viCycleDataGroup, double systemFrequency) { int samplesPerCycle = Transform.CalculateSamplesPerCycle(viCycleDataGroup.VA.RMS, systemFrequency); FaultSegment faultSegment = dbAdapterContainer.GetAdapter <FaultLocationInfoDataContext>().FaultSegments .Where(segment => segment.EventID == Fault.EventID) .Where(segment => segment.StartTime == Fault.Inception) .FirstOrDefault(segment => segment.SegmentType.Name == "Fault"); if ((object)faultSegment != null) { StartSample = faultSegment.StartSample; EndSample = faultSegment.EndSample - samplesPerCycle + 1; CycleDataGroup = Rotate(viCycleDataGroup.ToSubSet(StartSample, EndSample)); DistanceCurve.StartIndex = StartSample; AngleCurve.StartIndex = StartSample; } }