public static ReportDescription generateReportDescription() { ReportDescription reportDescription = new ReportDescription(); string reportSpecifierID = RandomHex.instance().generateRandomHex(10); // add a status report reportDescription.addReport(reportSpecifierID, ReportName.TELEMETRY_STATUS, 10, DurationModifier.MINUTES); reportDescription.addDescription(reportSpecifierID, RandomHex.instance().generateRandomHex(10), "resource1", ReportEnumeratedType.xresourceStatus, ReadingTypeEnumeratedType.xnotApplicable, "http://MarketContext1", 1, 1, false, DurationModifier.MINUTES); // history usage report reportSpecifierID = RandomHex.instance().generateRandomHex(10); reportDescription.addReport(reportSpecifierID, ReportName.HISTORY_USAGE, 10, DurationModifier.MINUTES); reportDescription.addDescriptionEnergyItem(reportSpecifierID, RandomHex.instance().generateRandomHex(10), "resource1", ReportEnumeratedType.usage, ReadingTypeEnumeratedType.DirectRead, "http://MarketContext1", 1, 10, false, DurationModifier.MINUTES, eEnergyItemType.EnergyReal, "RealEnergy", "Wh", SiScaleCodeType.n); reportDescription.addDescriptionPowerItem(reportSpecifierID, RandomHex.instance().generateRandomHex(10), "resource1", ReportEnumeratedType.usage, ReadingTypeEnumeratedType.DirectRead, "http://MarketContext1", 1, 10, false, DurationModifier.MINUTES, ePowerItemType.PowerReal, "RealPower", "W", SiScaleCodeType.n, 60, 110, true); // the test set will fail if reactive or appparent power/energy are telemetry or history reports /*reportDescription.addDescriptionPowerItem(reportSpecifierID, RandomHex.instance().generateRandomHex(10), "resource1", ReportEnumeratedType.usage, * ReadingTypeEnumeratedType.DirectRead, "http://MarketContext1", 1, 10, false, ePowerItemType.PowerApparent, * "ApparentPower", "VA", SiScaleCodeType.n, 60, 110, true); * * reportDescription.addDescriptionPowerItem(reportSpecifierID, RandomHex.instance().generateRandomHex(10), "resource1", ReportEnumeratedType.usage, * ReadingTypeEnumeratedType.DirectRead, "http://MarketContext1", 1, 10, false, ePowerItemType.PowerReactive, * "ReactivePower", "VAR", SiScaleCodeType.n, 60, 110, true);*/ // telemetry usage reportSpecifierID = RandomHex.instance().generateRandomHex(10); reportDescription.addReport(reportSpecifierID, ReportName.TELEMETRY_USAGE, 10, DurationModifier.MINUTES); reportDescription.addDescriptionPowerItem(reportSpecifierID, RandomHex.instance().generateRandomHex(10), "resource1", ReportEnumeratedType.usage, ReadingTypeEnumeratedType.DirectRead, "http://MarketContext1", 1, 10, false, DurationModifier.MINUTES, ePowerItemType.PowerReal, "RealPower", "W", SiScaleCodeType.n, 60, 110, true); return(reportDescription); }
public void reportGeneration() { ReportDescription reportDescription = ReportHelper.generateReportDescription(); RegisterReport registerReport = new RegisterReport(); string output = registerReport.createRegisterReport(RandomHex.instance().generateRandomHex(10), "TH_VEN", reportDescription); Console.Out.WriteLine(output); Assert.IsTrue(output.Contains("x-notApplicable")); Assert.IsTrue(output.Contains("x-resourceStatus")); object oadrObject = SerializeOadrObject.deserializeObject(output, typeof(oadrPayload)); }
async Task <System.Net.Mail.Attachment> IReportRunner.ExecuteAsync(string reportName, IDictionary <string, string> paramValueByParamName) { ReportDescription report = null; try { report = (await PortalHelpers.GetReportsAsync(reportName)).FirstOrDefault(); using (var conn = new SqlConnection(PortalHelpers.DefaultUloConnectionString)) { LogInformation("Executing report {ReportName} with {SprocSchema}.{SprocName}", reportName, report.SprocSchema, report.SprocName); await conn.OpenAsync(); using (var cmd = new SqlCommand($"[{report.SprocSchema}].[{report.SprocName}]", conn) { CommandType = CommandType.StoredProcedure, CommandTimeout = ConfigOptions.Value.TimeoutInSeconds }) { foreach (var pd in report.Parameters) { var sval = pd.IsHardcoded ? pd.HardCodedValue : paramValueByParamName[pd.SqlParameterName]; var oval = Convert.ChangeType(sval, pd.ClrType); cmd.Parameters.Add(new SqlParameter("@" + pd.SqlParameterName, oval)); } var ds = cmd.ExecuteReadDataSet(Logger); var st = new MemoryStream(); ds.ToSpreadSheet(st); st.Position = 0; var now = DateTime.UtcNow; string filename = report.FilenamePattern == null ? report.Name : string.Format( report.FilenamePattern, now, now.ToLocalTime(), now.ToTimeZone(PortalHelpers.DisplayTimeZone)); filename += MimeType.Application.SpreadSheet.Xlsx.PrimaryFileExtension; return(new System.Net.Mail.Attachment(st, filename, MimeType.Application.SpreadSheet.Xlsx)); } } } catch (Exception ex) { LogError(ex, "error running report {name}", report.Name); throw; } }
public void serializeReportIntervalsTelemetryStatus() { ReportDescription reportDescription = new ReportDescription(); reportDescription.addReport("specifierID", ReportName.TELEMETRY_STATUS, 0, DurationModifier.MINUTES); reportDescription.addIntervalResourceStatus("specifierID", DateTime.UtcNow, 0, DurationModifier.SECONDS, "rid", 1, (float)1.0, DataQuality.qualityGoodNonSpecific, true, false, (float)1.0, (float)2.0, (float)3.0, (float)4.0, (float)5.0, (float)6.0, (float)7.0, (float)8.0, (float)9.0, (float)10.0, (float)11.0, (float)12.0, (float)13.0, (float)14.0, (float)15.0, (float)16.0); oadrReportType report = reportDescription.generateReport("specifierID", DateTime.UtcNow); string output = SerializeOadrObject.serializeOjbect(report, typeof(oadrReportType)); Assert.IsTrue(output.Contains("<oadrReportPayload")); Assert.IsTrue(output.Contains("<oadrPayloadResourceStatus")); }
private void InitReportMap() { var reportTypes = Enum.GetValues(typeof(ReportType)); _reportMap = new ReportDescription[reportTypes.Length]; foreach (var reportType in reportTypes) { _reportMap[(int)reportType] = new ReportDescription(GenericPrintThread); } _reportMap[(int)ReportType.FailedControlRelations] = new ReportDescription(GenericPrintThread, reportParameters => _electionManager.SourceData. BindAutoLinesAndChecksCountMethods((Election)reportParameters[PRN_ELECTION]), reportParameters => { }); _reportMap[(int)ReportType.ElectionProtocol] = new ReportDescription(GenericPrintThread, reportParameters => _electionManager.SourceData. BindAutoLinesAndChecksCountMethods((Election)reportParameters[PRN_ELECTION]), reportParameters => { }); }
/**********************************************************/ private void validateReportDescription(ReportDescription reportDescription, int numStatusDescription, int numDataDescriptions) { foreach (string reportSpecifierID in reportDescription.ReportSpecifierIDs) { oadrReportType report = reportDescription.generateReportDescription(reportSpecifierID); if (report.reportName.Contains("STATUS")) { // each resource should add one status description Assert.AreEqual(numStatusDescription, report.oadrReportDescription.Length); } else { // each resource should add 2 data descriptions Assert.AreEqual(numDataDescriptions, report.oadrReportDescription.Length); } } }
public void N1_0020_TH_VTN_1() { VEN2b ven = new VEN2b(new HttpWebRequestWrapper(false, System.Net.SecurityProtocolType.Tls12), TestProperties.vtnURL, TestProperties.venName, TestProperties.venID, TestProperties.venPassword); // register CreatePartyRegistration createPartyRegistration = ven.createPartyRegistration(RandomHex.instance().generateRandomHex(10), oadrProfileType.Item20b, oadrTransportType.simpleHttp, "", false, false, true); Assert.IsTrue(createPartyRegistration.response != null); Console.Out.WriteLine(createPartyRegistration.responseBody); // POLL OadrPoll oadrPoll = ven.poll(); Assert.IsNotNull(oadrPoll.response); Console.Out.WriteLine(oadrPoll.responseBody); // First request is registerReport Assert.IsTrue(oadrPoll.responseTypeIs(typeof(oadrRegisterReportType))); oadrRegisterReportType registerReportType = oadrPoll.getRegisterReportResponse(); RegisteredReport registeredReport = ven.registeredReport(registerReportType.requestID, "200", "OK"); Assert.IsNotNull(registeredReport.response); Assert.AreEqual(registeredReport.response.eiResponse.responseCode, "200"); // register our own report ReportDescription reportDescription = ReportHelper.generateReportDescription(); RegisterReport registerReport = ven.registerReport(RandomHex.instance().generateRandomHex(10), reportDescription); Assert.IsNotNull(registerReport.response); Assert.AreEqual("200", registerReport.response.eiResponse.responseCode); Assert.AreEqual(registerReport.request.requestID, registerReport.response.eiResponse.requestID); }
public void R1_3010_TH_VTN_1() { VEN2b ven = new VEN2b(new HttpWebRequestWrapper(false, System.Net.SecurityProtocolType.Tls12), TestProperties.vtnURL, TestProperties.venName, "", TestProperties.venPassword); QueryRegistration queryRegistration = ven.queryRegistration(); OadrPoll poll = ven.poll(); poll.responseTypeIs(typeof(oadrCreateReportType)); oadrCreateReportType createReport = poll.getCreateReportResponse(); Console.Out.WriteLine(poll.responseBody); ReportDescription reportDescription = new ReportDescription(); reportDescription.addReport(createReport.oadrReportRequest[0].reportSpecifier.reportSpecifierID, ReportName.TELEMETRY_STATUS, 0, DurationModifier.MINUTES); DateTime dtstart = DateTime.UtcNow; reportDescription.addIntervalResourceStatus(createReport.oadrReportRequest[0].reportSpecifier.reportSpecifierID, dtstart, 0, DurationModifier.SECONDS, "rid", 1, (float)1.0, DataQuality.qualityGoodNonSpecific, true, false, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0); CreatedReport createdReport = ven.createdReport(createReport.requestID, 200, "OK"); Assert.IsNotNull(createdReport.response); List <string> reportSpecifierIDs = new List <string>(); reportSpecifierIDs.Add(createReport.oadrReportRequest[0].reportSpecifier.reportSpecifierID); UpdateReport updateReport = ven.updateReport(createReport.requestID, reportDescription, reportSpecifierIDs, dtstart); Assert.IsNotNull(updateReport.response); }
public void serializeReportIntervalsTelemetryUsage() { ReportDescription reportDescription = new ReportDescription(); reportDescription.addReport("specifierID", ReportName.TELEMETRY_USAGE, 0, DurationModifier.MINUTES); int uid = reportDescription.addInterval("specifierID", DateTime.UtcNow, 0, DurationModifier.SECONDS); reportDescription.addIntervalReportPayload("specifierID", uid, "rid", 1, (float)1.0, (float)22.3, DataQuality.qualityGoodNonSpecific); reportDescription.addIntervalReportPayload("specifierID", uid, "rid2", 1, (float)1.0, (float)41.3, DataQuality.qualityGoodNonSpecific); reportDescription.addIntervalReportPayload("specifierID", DateTime.UtcNow.AddMinutes(5), 0, DurationModifier.SECONDS, "rid3", 1, (float)1.0, (float)57.6, DataQuality.qualityGoodNonSpecific); oadrReportType report = reportDescription.generateReport("specifierID", DateTime.UtcNow); // check that the createdDateTime is properly set to the current time Console.Out.WriteLine(DateTime.UtcNow - report.createdDateTime); Assert.IsTrue((DateTime.UtcNow - report.createdDateTime).Seconds < 5); string output = SerializeOadrObject.serializeOjbect(report, typeof(oadrReportType)); Assert.IsTrue(output.Contains("<oadrReportPayload")); Assert.IsTrue(output.Contains("<payloadFloat")); }
private void InitReportMap() { var reportTypes = Enum.GetValues(typeof(ReportType)); _reportMap = new ReportDescription[reportTypes.Length]; foreach (var reportType in reportTypes) _reportMap[(int)reportType] = new ReportDescription(GenericPrintThread); _reportMap[(int)ReportType.FailedControlRelations] = new ReportDescription(GenericPrintThread, reportParameters => _electionManager.SourceData. BindAutoLinesAndChecksCountMethods((Election)reportParameters[PRN_ELECTION]), reportParameters => { }); _reportMap[(int)ReportType.ElectionProtocol] = new ReportDescription(GenericPrintThread, reportParameters => _electionManager.SourceData. BindAutoLinesAndChecksCountMethods((Election)reportParameters[PRN_ELECTION]), reportParameters => { }); }
public ConfigureReportModel(ULODBEntities db, ReportDescription description = null) { Description = description; RegionItems.AddRange(PortalHelpers.CreateRegionSelectListItems()); ReviewItems.AddRange(PortalHelpers.CreateReviewSelectListItems()); }
public void R1_3020_TH_VTN_1() { VEN2b ven = new VEN2b(new HttpWebRequestWrapper(false, System.Net.SecurityProtocolType.Tls12), TestProperties.vtnURL, TestProperties.venName, TestProperties.venID, TestProperties.venPassword); OadrPoll poll = ven.poll(); poll.responseTypeIs(typeof(oadrCreateReportType)); oadrCreateReportType createReport = poll.getCreateReportResponse(); Console.Out.WriteLine(poll.responseBody); ReportDescription reportDescription = new ReportDescription(); reportDescription.addReport(createReport.oadrReportRequest[0].reportSpecifier.reportSpecifierID, ReportName.TELEMETRY_STATUS, 0, DurationModifier.MINUTES); CreatedReport createdReport = ven.createdReport(createReport.requestID, 200, "OK"); Assert.IsNotNull(createdReport.response); List <string> reportSpecifierIDs = new List <string>(); int sleepTime = (int)(createReport.oadrReportRequest[0].reportSpecifier.reportInterval.properties.dtstart.datetime - DateTime.UtcNow).TotalSeconds; if (sleepTime > 0) { System.Threading.Thread.Sleep(sleepTime * 1000); } reportSpecifierIDs.Add(createReport.oadrReportRequest[0].reportSpecifier.reportSpecifierID); DateTime endTime = createReport.oadrReportRequest[0].reportSpecifier.reportInterval.properties.dtstart.datetime + System.Xml.XmlConvert.ToTimeSpan(createReport.oadrReportRequest[0].reportSpecifier.reportInterval.properties.duration.duration); // convert ISO8601 duration to timespan // http://stackoverflow.com/questions/62804/how-to-convert-iso-8601-duration-to-timespan-in-vb-net // http://msdn.microsoft.com/en-us/library/system.xml.xmlconvert.totimespan.aspx int sleepDelay = (int)System.Xml.XmlConvert.ToTimeSpan(createReport.oadrReportRequest[0].reportSpecifier.reportBackDuration.duration).TotalSeconds; // the test should continue until the end time has passed, but the test set exits after it receives 2 updates // while (DateTime.Now < endTime) for (int count = 0; count < 2; count++) { DateTime dtstart = DateTime.UtcNow; reportDescription.addIntervalResourceStatus(createReport.oadrReportRequest[0].reportSpecifier.reportSpecifierID, dtstart, 0, DurationModifier.SECONDS, "rid", 1, (float)1.0, DataQuality.qualityGoodNonSpecific, true, false, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0, (float)1.0); UpdateReport updateReport = ven.updateReport(createReport.requestID, reportDescription, reportSpecifierIDs, dtstart); Assert.IsNotNull(updateReport.response); if (count == 0) { System.Threading.Thread.Sleep(sleepDelay * 1000); } } }