public FaultSummarizer(double systemFrequency) { FaultGroupTable = new FaultLocationData.FaultGroupDataTable(); FaultSegmentTable = new FaultLocationData.FaultSegmentDataTable(); FaultCurveTable = new FaultLocationData.FaultCurveDataTable(); FaultSummaryTable = new FaultLocationData.FaultSummaryDataTable(); m_faultGroupList = new List <Tuple <Tuple <int, DateTime, DateTime>, FaultLocationData.FaultGroupRow> >(); m_faultSegmentList = new List <Tuple <EventKey, FaultLocationData.FaultSegmentRow> >(); m_faultCurveList = new List <Tuple <EventKey, FaultLocationData.FaultCurveRow> >(); m_faultSummaryList = new List <Tuple <EventKey, FaultLocationData.FaultSummaryRow> >(); m_systemFrequency = systemFrequency; }
protected void Page_Load(object sender, EventArgs e) { SqlConnection conn = null; SqlDataReader rdr = null; if (!IsPostBack) { if (Request["eventId"] != null) { postedEventId = Request["eventId"]; using (EventTypeTableAdapter eventTypeAdapter = new EventTypeTableAdapter()) using (EventTableAdapter eventAdapter = new EventTableAdapter()) using (MeterInfoDataContext meterInfo = new MeterInfoDataContext(connectionstring)) using (FaultSummaryTableAdapter summaryInfo = new FaultSummaryTableAdapter()) { try { eventAdapter.Connection.ConnectionString = connectionstring; eventTypeAdapter.Connection.ConnectionString = connectionstring; summaryInfo.Connection.ConnectionString = connectionstring; MeterData.EventRow theevent = eventAdapter.GetDataByID(Convert.ToInt32(postedEventId)).First(); FaultLocationData.FaultSummaryDataTable thesummarydatatable = summaryInfo.GetDataBy(Convert.ToInt32(postedEventId)); FaultLocationData.FaultSummaryRow thesummary = thesummarydatatable .OrderBy(row => row.IsSuppressed) .ThenByDescending(row => row.IsSelectedAlgorithm) .ThenBy(row => row.Inception) .FirstOrDefault(); if ((object)thesummary == null) { postedFaultType = "Invalid"; postedInceptionTime = "Invalid"; postedDurationPeriod = "Invalid"; postedFaultCurrent = "Invalid"; postedDistanceMethod = "Invalid"; postedSingleEndedDistance = "Invalid"; postedDeltaTime = "Invalid"; postedDoubleEndedDistance = "Invalid"; postedDoubleEndedConfidence = "Invalid"; return; } postedFaultType = thesummary.FaultType; postedInceptionTime = thesummary.Inception.TimeOfDay.ToString(); postedDurationPeriod = (thesummary.DurationSeconds * 1000).ToString("##.###", CultureInfo.InvariantCulture) + "msec (" + thesummary.DurationCycles.ToString("##.##", CultureInfo.InvariantCulture) + " cycles)"; postedFaultCurrent = thesummary.CurrentMagnitude.ToString("####.#", CultureInfo.InvariantCulture) + " Amps (RMS)"; postedDistanceMethod = thesummary.Algorithm; postedSingleEndedDistance = thesummary.Distance.ToString("####.###", CultureInfo.InvariantCulture) + " miles"; double deltatime = (thesummary.Inception - theevent.StartTime).Ticks / 10000000.0; postedDeltaTime = deltatime.ToString(); postedStartTime = theevent.StartTime.TimeOfDay.ToString(); Meter themeter = meterInfo.Meters.Single(m => m.ID == theevent.MeterID); postedMeterName = themeter.Name + " - " + themeter.AssetKey; postedMeterId = theevent.MeterID.ToString(); conn = new SqlConnection(connectionstring); conn.Open(); SqlCommand cmd = new SqlCommand("dbo.selectDoubleEndedFaultDistanceForEventID", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter("@EventID", postedEventId)); cmd.CommandTimeout = 300; rdr = cmd.ExecuteReader(); if (rdr.HasRows) { while (rdr.Read()) { postedDoubleEndedDistance = ((double)rdr["Distance"]).ToString("####.###", CultureInfo.InvariantCulture) + " miles"; postedDoubleEndedConfidence = ((double)rdr["Angle"]).ToString("####.####", CultureInfo.InvariantCulture) + " degrees"; } } } catch (Exception ex) { postedExceptionMessage = ex.Message; } finally { if (rdr != null) { rdr.Dispose(); } if (conn != null) { conn.Dispose(); } } } } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request["eventId"] != null) { if (Request["faultcurves"] != null) { postedShowFaultCurves = Request["faultcurves"]; } if (Request["breakerdigitals"] != null) { postedShowBreakerDigitals = Request["breakerdigitals"]; } postedURLQueryString = string.Concat(Request.QueryString.AllKeys .Where(key => !key.Equals("eventId", StringComparison.OrdinalIgnoreCase)) .Select(key => "&" + HttpUtility.UrlEncode(key) + "=" + HttpUtility.UrlEncode(Request.QueryString[key]))); postedEventId = Request["eventId"]; using (DbAdapterContainer dbAdapterContainer = new DbAdapterContainer(connectionString)) { try { EventTypeTableAdapter eventTypeAdapter = dbAdapterContainer.GetAdapter <EventTypeTableAdapter>(); EventTableAdapter eventAdapter = dbAdapterContainer.GetAdapter <EventTableAdapter>(); MeterInfoDataContext meterInfo = dbAdapterContainer.GetAdapter <MeterInfoDataContext>(); FaultSummaryTableAdapter summaryInfo = dbAdapterContainer.GetAdapter <FaultSummaryTableAdapter>(); DisturbanceTableAdapter disturbanceAdapter = dbAdapterContainer.GetAdapter <DisturbanceTableAdapter>(); MeterData.EventRow theevent = eventAdapter.GetDataByID(Convert.ToInt32(postedEventId)).First(); JavaScriptSerializer serializer = new JavaScriptSerializer(); postedSeriesList = serializer.Serialize(signalService.GetFlotInfo(theevent.ID)); postedMeterId = theevent.MeterID.ToString(); postedDate = theevent.StartTime.ToShortDateString(); postedEventId = theevent.ID.ToString(); postedEventDate = theevent.StartTime.ToString("yyyy-MM-dd HH:mm:ss.fffffff"); postedEventMilliseconds = theevent.StartTime.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds.ToString(); postedMeterName = meterInfo.Meters.Single(m => m.ID == theevent.MeterID).Name; MeterData.EventTypeDataTable eventTypes = eventTypeAdapter.GetData(); postedAdjacentEventIds = GetPreviousAndNextEventIds(theevent.ID, dbAdapterContainer.Connection); postedLineName = meterInfo.MeterLines.Where(row => row.LineID == theevent.LineID) .Where(row => row.MeterID == theevent.MeterID) .Select(row => row.LineName) .FirstOrDefault() ?? ""; postedLineLength = meterInfo.Lines .Where(row => row.ID == theevent.LineID) .Select(row => row.Length) .AsEnumerable() .Select(length => length.ToString()) .FirstOrDefault() ?? ""; postedEventName = eventTypes .Where(row => row.ID == theevent.EventTypeID) .Select(row => row.Name) .DefaultIfEmpty("") .Single(); if (postedEventName.Equals("Fault")) { FaultLocationData.FaultSummaryDataTable thesummarydatatable = summaryInfo.GetDataBy(Convert.ToInt32(postedEventId)); FaultLocationData.FaultSummaryRow thesummary = thesummarydatatable .Where(row => row.IsSelectedAlgorithm == 1) .OrderBy(row => row.IsSuppressed) .ThenBy(row => row.Inception) .FirstOrDefault(); if ((object)thesummary != null) { postedStartTime = thesummary.Inception.TimeOfDay.ToString(); postedDurationPeriod = thesummary.DurationCycles.ToString("##.##", CultureInfo.InvariantCulture) + " cycles"; postedMagnitude = thesummary.CurrentMagnitude.ToString("####.#", CultureInfo.InvariantCulture) + " Amps (RMS)"; } } else if (new[] { "Sag", "Swell" }.Contains(postedEventName)) { MeterData.DisturbanceDataTable disturbanceTable = disturbanceAdapter.GetDataBy(theevent.ID); MeterData.DisturbanceRow disturbance = disturbanceTable .Where(row => row.EventTypeID == theevent.EventTypeID) .OrderBy(row => row.StartTime) .FirstOrDefault(); if ((object)disturbance != null) { postedStartTime = disturbance.StartTime.TimeOfDay.ToString(); postedDurationPeriod = disturbance.DurationCycles.ToString("##.##", CultureInfo.InvariantCulture) + " cycles"; if (disturbance.PerUnitMagnitude != -1.0e308) { postedMagnitude = disturbance.PerUnitMagnitude.ToString("N3", CultureInfo.InvariantCulture) + " pu (RMS)"; } } } } catch (Exception ex) { postedErrorMessage = ex.Message; } } } } }