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(); } } } } } }
private eventSet FetchMeterEventFaultCurveByID(string EventInstanceID) { eventSet theset = new eventSet(); theset.data = new List <signalDetail>(); theset.Yaxis0name = "Miles"; theset.Yaxis1name = ""; if (EventInstanceID == "0") { return(theset); } DataGroup eventDataGroup = new DataGroup(); List <DataSeries> faultCurves; List <FaultLocationData.FaultCurveRow> FaultCurves; using (MeterInfoDataContext meterInfo = new MeterInfoDataContext(ConnectionString)) using (FaultSummaryTableAdapter summaryInfo = new FaultSummaryTableAdapter()) using (EventTableAdapter eventAdapter = new EventTableAdapter()) using (FaultCurveTableAdapter faultCurveAdapter = new FaultCurveTableAdapter()) { faultCurveAdapter.Connection.ConnectionString = ConnectionString; eventAdapter.Connection.ConnectionString = ConnectionString; summaryInfo.Connection.ConnectionString = ConnectionString; theset.Yaxis0name = "Miles"; theset.Yaxis1name = ""; MeterData.EventRow theevent = eventAdapter.GetDataByID(Convert.ToInt32(EventInstanceID)).First(); Meter themeter = meterInfo.Meters.Single(m => theevent.MeterID == m.ID); Line theline = meterInfo.Lines.Single(l => theevent.LineID == l.ID); FaultLocationData.FaultSummaryRow thesummary = (FaultLocationData.FaultSummaryRow)summaryInfo.GetDataBy(Convert.ToInt32(EventInstanceID)).Select("IsSelectedAlgorithm = 1").FirstOrDefault(); if ((object)thesummary == null) { return(theset); } FaultCurves = faultCurveAdapter.GetDataBy(Convert.ToInt32(EventInstanceID)).ToList(); if (FaultCurves.Count == 0) { return(theset); } faultCurves = FaultCurves.Select(ToDataSeries).ToList(); foreach (DataSeries faultCurve in faultCurves) { FixFaultCurve(faultCurve, theline); } double CyclesPerSecond = thesummary.DurationCycles / thesummary.DurationSeconds; List <faultSegmentDetail> thedetails = new List <faultSegmentDetail>(); theset.detail = thedetails; faultSegmentDetail thedetail = new faultSegmentDetail(); thedetail.type = "" + thesummary.Inception.TimeOfDay.ToString();//; + "-" + new TimeSpan(thesummary.Inception.TimeOfDay.Ticks + thesummary.DurationSeconds).ToString(); thedetail.StartSample = thesummary.CalculationCycle; thedetail.EndSample = thesummary.CalculationCycle + 8; thedetails.Add(thedetail); //faultSegmentDetail thedetail2 = new faultSegmentDetail(); //thedetail2.type = ""; //thedetail2.StartSample = thesummary.CalculationCycle + (int)(Math.Round((faultCurves.First().SampleRate) / CyclesPerSecond)); //thedetail2.EndSample = thedetail2.StartSample - 4; //thedetails.Add(thedetail2); int i = 0; foreach (DataSeries theseries in faultCurves) { int datacount = theseries.DataPoints.Count(); if (theset.xAxis == null) { theset.xAxis = new string[datacount]; } //theset.data[i] = new signalDetail(); signalDetail theitem = new signalDetail(); theitem.name = FaultCurves[i].Algorithm; theitem.data = new double[datacount]; theitem.type = "line"; theitem.yAxis = 0; int j = 0; DateTime beginticks = theseries.DataPoints[0].Time; foreach (DataPoint thepoint in theseries.DataPoints) { double elapsed = thepoint.Time.Subtract(beginticks).TotalSeconds; if (theset.xAxis[j] == null) { theset.xAxis[j] = elapsed.ToString(); } theitem.data[j] = thepoint.Value; j++; } i++; theset.data.Add(theitem); } } return(theset); }
private eventSet FetchMeterEventFaultCurveByID(string EventInstanceID) { eventSet theset = new eventSet(); theset.data = new List<signalDetail>(); theset.Yaxis0name = "Miles"; theset.Yaxis1name = ""; if (EventInstanceID == "0") return (theset); DataGroup eventDataGroup = new DataGroup(); List<DataSeries> faultCurves; List<FaultLocationData.FaultCurveRow> FaultCurves; using (MeterInfoDataContext meterInfo = new MeterInfoDataContext(ConnectionString)) using (FaultSummaryTableAdapter summaryInfo = new FaultSummaryTableAdapter()) using (EventTableAdapter eventAdapter = new EventTableAdapter()) using (FaultCurveTableAdapter faultCurveAdapter = new FaultCurveTableAdapter()) { faultCurveAdapter.Connection.ConnectionString = ConnectionString; eventAdapter.Connection.ConnectionString = ConnectionString; summaryInfo.Connection.ConnectionString = ConnectionString; theset.Yaxis0name = "Miles"; theset.Yaxis1name = ""; MeterData.EventRow theevent = eventAdapter.GetDataByID(Convert.ToInt32(EventInstanceID)).First(); Meter themeter = meterInfo.Meters.Single(m => theevent.MeterID == m.ID); Line theline = meterInfo.Lines.Single(l => theevent.LineID == l.ID); FaultLocationData.FaultSummaryRow thesummary = (FaultLocationData.FaultSummaryRow)summaryInfo.GetDataBy(Convert.ToInt32(EventInstanceID)).Select("IsSelectedAlgorithm = 1").FirstOrDefault(); if ((object)thesummary == null) return theset; FaultCurves = faultCurveAdapter.GetDataBy(Convert.ToInt32(EventInstanceID)).ToList(); if (FaultCurves.Count == 0) return (theset); faultCurves = FaultCurves.Select(ToDataSeries).ToList(); foreach (DataSeries faultCurve in faultCurves) { FixFaultCurve(faultCurve, theline); } double CyclesPerSecond = thesummary.DurationCycles / thesummary.DurationSeconds; List<faultSegmentDetail> thedetails = new List<faultSegmentDetail>(); theset.detail = thedetails; faultSegmentDetail thedetail = new faultSegmentDetail(); thedetail.type = "" + thesummary.Inception.TimeOfDay.ToString();//; + "-" + new TimeSpan(thesummary.Inception.TimeOfDay.Ticks + thesummary.DurationSeconds).ToString(); thedetail.StartSample = thesummary.CalculationCycle; thedetail.EndSample = thesummary.CalculationCycle + 8; thedetails.Add(thedetail); //faultSegmentDetail thedetail2 = new faultSegmentDetail(); //thedetail2.type = ""; //thedetail2.StartSample = thesummary.CalculationCycle + (int)(Math.Round((faultCurves.First().SampleRate) / CyclesPerSecond)); //thedetail2.EndSample = thedetail2.StartSample - 4; //thedetails.Add(thedetail2); int i = 0; foreach (DataSeries theseries in faultCurves) { int datacount = theseries.DataPoints.Count(); if (theset.xAxis == null) theset.xAxis = new string[datacount]; //theset.data[i] = new signalDetail(); signalDetail theitem = new signalDetail(); theitem.name = FaultCurves[i].Algorithm; theitem.data = new double[datacount]; theitem.type = "line"; theitem.yAxis = 0; int j = 0; DateTime beginticks = theseries.DataPoints[0].Time; foreach (DataPoint thepoint in theseries.DataPoints) { double elapsed = thepoint.Time.Subtract(beginticks).TotalSeconds; if (theset.xAxis[j] == null) theset.xAxis[j] = elapsed.ToString(); theitem.data[j] = thepoint.Value; j++; } i++; theset.data.Add(theitem); } } return (theset); }
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; } } } } }
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(); } } } } }