public ReportWrapper BuildSalesForecastByMonthReport(Guid responsibleID, DateTime fromDate, DateTime toDate) { var reportData = DaoFactory.GetReportDao(). BuildSalesForecastByMonthReport( responsibleID, fromDate, toDate ); var report = new ReportWrapper { ReportTitle = CRMReportResource.Report_SalesForecastByMonth_Title, ReportDescription = CRMReportResource.Report_SalesForecastByMonth_Description, Data = reportData.ConvertAll(row => new { month = row[0], amount = row[1], count = row[2], percent = row[3] }), Lables = new List <string> { CRMCommonResource.Date, CRMCommonResource.Count } }; return(report); }
public ReportWrapper BuildContactPopulateReport( ApiDateTime fromDate, ApiDateTime toDate, bool?isCompany, string tagName, int contactType) { var reportData = DaoFactory.GetReportDao().BuildContactPopulateReport(fromDate, toDate, isCompany, tagName, contactType); var report = new ReportWrapper { ReportTitle = CRMReportResource.Report_ContactPopulate_Title, ReportDescription = CRMReportResource.Report_ContactPopulate_Description, Data = reportData.ConvertAll(row => new { Date = (ApiDateTime)TenantUtil.DateTimeFromUtc(DateTime.Parse(Convert.ToString(row[0]))), Count = row[1] }), Lables = new List <string> { CRMCommonResource.Date, CRMCommonResource.Count } }; return(report); }
/************************************************************************************************************************/ private void addIntervalEnergy(ReportWrapper reportWrapper, string rid, DateTime dtstart, float value) { reportWrapper.addDescriptionEnergyItem(rid, "resourceid", ReportEnumeratedType.usage, ReadingTypeEnumeratedType.DirectRead, "http://MarketContext1", 1, 1, false, DurationModifier.MINUTES, eEnergyItemType.EnergyReal, "", "kWh", SiScaleCodeType.n); reportWrapper.addIntervalReportPayload(dtstart, rid, 1, 1, value, DataQuality.qualityGoodNonSpecific, 1, DurationModifier.MINUTES); }
public ReportView(int id) { InitializeComponent(); var list = ReportWrapper.GetReports(id); if (list.Count != 0) { lstReports.ItemsSource = list; } var agentlist = AgentWrapper.GetAllAgents(); var informerlist = InformerWrapper.GetAllInformers(); foreach (var i in agentlist) { authorlist.Add(new Person(i.Id, "", "", i.Name)); } foreach (var i in informerlist) { authorlist.Add(new Person(i.Id, "", "", i.Name)); } cmbAuthor.ItemsSource = authorlist; observedlist = ObservedWrapper.GetAllObserved(); cmbObserved.ItemsSource = observedlist; }
public void properOrder() { ReportWrapper reportWrapper = new ReportWrapper("specifier1", ReportName.TELEMETRY_USAGE, 5, DurationModifier.HOURS); DateTime start = DateTime.Now.ToUniversalTime(); start = start.AddMilliseconds(-start.Millisecond); start = start.AddSeconds(-start.Second); addIntervalResourceStatus(reportWrapper, "rid1", start, (float)3.0); addIntervalResourceStatus(reportWrapper, "rid2", start.AddSeconds(30), (float)2.0); addIntervalResourceStatus(reportWrapper, "rid3", start.AddSeconds(60), (float)1.0); addIntervalResourceStatus(reportWrapper, "rid4", start.AddSeconds(-30), (float)4.0); addIntervalResourceStatus(reportWrapper, "rid5", start.AddSeconds(-50), (float)5.0); addIntervalResourceStatus(reportWrapper, "rid6", start.AddSeconds(90), (float)0.0); oadrReportType report = reportWrapper.generateReport("requestID"); Assert.IsTrue(report.dtstart.datetime == report.intervals[0].dtstart.datetime); for (int index = 0; index < report.intervals.Length - 1; index++) { oadrReportPayloadType reportPayload = (oadrReportPayloadType)report.intervals[index].streamPayloadBase[0]; oadrPayloadResourceStatusType status = (oadrPayloadResourceStatusType)reportPayload.Item; Assert.IsTrue(report.intervals[index].dtstart.datetime > report.intervals[index + 1].dtstart.datetime); Assert.AreEqual(index, (int)status.oadrLoadControlState.oadrCapacity.oadrMin); } string xml = SerializeOadrObject.serializeOjbect(report, report.GetType()); Console.Out.WriteLine(xml); }
public JsonResult GetReport( reportModel data, List <reportParm> parms, List <reportParm> extensionParms = null ) { MSGReturnModel <string> result = new MSGReturnModel <string>(); result.RETURN_FLAG = false; try { string title = "報表名稱"; if (data.className.IsNullOrWhiteSpace()) { result.DESCRIPTION = "報表錯誤請聯絡IT人員"; //result.DESCRIPTION = MessageType.parameter_Error.GetDescription(null, "無呼叫的className"); return(Json(result)); } if (!data.title.IsNullOrWhiteSpace()) { title = data.title; } object obj = Activator.CreateInstance(Assembly.Load("Treasury.Web").GetType($"Treasury.Web.Report.Data.{data.className}")); MethodInfo[] methods = obj.GetType().GetMethods(); MethodInfo mi = methods.FirstOrDefault(x => x.Name == "GetData"); if (mi == null) { //檢查是否有實作資料獲取 result.DESCRIPTION = "報表錯誤請聯絡IT人員"; return(Json(result)); } DataSet ds = (DataSet)mi.Invoke(obj, new object[] { parms }); List <reportParm> eparm = (List <reportParm>)(obj.GetType().GetProperty("extensionParms").GetValue(obj)); ReportWrapper rw = new ReportWrapper(); rw.ReportPath = Server.MapPath($"~/Report/Rdlc/{data.className}.rdlc"); for (int i = 0; i < ds.Tables.Count; i++) { rw.ReportDataSources.Add(new ReportDataSource("DataSet" + (i + 1).ToString(), ds.Tables[i])); } rw.ReportParameters.Add(new ReportParameter("Title", title)); if (extensionParms != null) { rw.ReportParameters.AddRange(extensionParms.Select(x => new ReportParameter(x.key, x.value))); } if (eparm.Any()) { rw.ReportParameters.AddRange(eparm.Select(x => new ReportParameter(x.key, x.value))); } rw.IsDownloadDirectly = false; var g = Guid.NewGuid().ToString(); Session[g] = rw; result.RETURN_FLAG = true; result.Datas = g; } catch (Exception ex) { result.DESCRIPTION = ex.exceptionMessage(); } return(Json(result)); }
private void addIntervalResourceStatus(ReportWrapper reportWrapper, string rid, DateTime dtstart, float capacityMin) { reportWrapper.addDescriptionStatus(rid, "resourceid", "http://MarketContext1", 10, 10, false, DurationModifier.SECONDS); reportWrapper.addIntervalResourceStatus(dtstart.ToUniversalTime(), rid, 1, 1, DataQuality.qualityGoodNonSpecific, true, false, (float)capacityMin, (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); }
/**********************************************************/ public override void addPayloadToReport(ReportWrapper reportWrapper, IntervalValue intervalValue) { PowerValue pv = (PowerValue)intervalValue; // TODO: point in time values should not include a duration, but the test set will fail // certain test cases duration is not included. once the test set is fixed, change to not inlcude // the duration reportWrapper.addIntervalReportPayload(pv.DateTime.ToUniversalTime(), RID, pv.Confidence, pv.Accuracy, pv.Value, DataQuality.qualityGoodNonSpecific, 10, DurationModifier.SECONDS); // reportWrapper.addIntervalReportPayload(pv.DateTime.ToUniversalTime(), RID, pv.Confidence, pv.Accuracy, pv.Value, DataQuality.qualityGoodNonSpecific); }
public void SmokeTest_UnknownFails() { var connection = ServerConnection.Create(_serverPath, true); var reportWrapper = ReportWrapper.Create(connection, _reportPath); var parameters = ParamPack.Create("pack1"); var result = reportWrapper.Render(ReportRenderFormat.Unknown, parameters.Pack()); Assert.That(result.Failure, Is.True); }
/**********************************************************/ public override void addPayloadToReport(ReportWrapper reportWrapper, IntervalValue intervalValue) { StatusValue sv = (StatusValue)intervalValue; // TODO: point in time values should not include a duration, but the test set will fail // certain test cases duration is not included. once the test set is fixed, change to not inlcude // the duration reportWrapper.addIntervalResourceStatus(sv.DateTime.ToUniversalTime(), RID, 1, (float)1.0, DataQuality.qualityGoodNonSpecific, sv.Online, sv.Override, (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, 10, DurationModifier.SECONDS); /*reportWrapper.addIntervalResourceStatus(sv.DateTime.ToUniversalTime(), RID, 1, (float)1.0, DataQuality.qualityGoodNonSpecific, sv.Online, sv.Override, (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);*/ }
public void intervalsCleared() { ReportWrapper reportWrapper = new ReportWrapper("specifier1", ReportName.TELEMETRY_USAGE, 5, DurationModifier.HOURS); DateTime start = DateTime.Now.ToUniversalTime(); start = start.AddMilliseconds(-start.Millisecond); start = start.AddSeconds(-start.Second); addIntervalResourceStatus(reportWrapper, "rid1", start, (float)3.0); oadrReportType report = reportWrapper.generateReport("requestID"); Assert.IsTrue(report.intervals.Length == 1, "should have 1 interval"); report = reportWrapper.generateReport("requestID"); Assert.IsTrue(report.intervals == null, "intervals should be null when no payloads are added to report"); }
public void SmokeTest_AllFormats(ReportRenderFormat format) { var connection = ServerConnection.Create(_serverPath, true); var reportWrapper = ReportWrapper.Create(connection, _reportPath); var parameters = ParamPack.Create("pack1"); var result = reportWrapper.Render(format, parameters.Pack()); if (result.Failure) { Debug.WriteLine(result.Error); } Assert.That(result.Success, Is.True); Assert.That(result.Value.Stream, Is.Not.Null); Assert.That(result.Value.Stream.Length, Is.GreaterThan(0)); }
/// <summary> /// 列印傳票(試作) /// </summary> public ActionResult PrintSampleTicket2() { //# 準備資料來源 //rw.Add(new ReportParameter("stampUnit", "中和二分行")); //rw.Add(new ReportParameter("stampDate", "NOV 12 2018")); //rw.Add(new ReportParameter("stampStaff", "高某某")); string emptyStampPath = Server.MapPath("~/images/scb_stamp.png"); byte[] imgBlob = ReportDemoBiz.MakeTimestampBlob(emptyStampPath, "中和二分行", "NOV 11 2018", "高某某"); // 準備 Images 資料來源 ReportDataSet.ImagesDataTable imgTable = new ReportDataSet.ImagesDataTable(); var nr = imgTable.NewImagesRow(); imgTable.AddImagesRow(1, imgBlob, null, null); imgTable.AcceptChanges(); //------------------------------ //# Set report info ReportWrapper rw = new ReportWrapper(); rw.ReportPath = Server.MapPath("~/Report/rdlc/SampleTicket2.rdlc"); rw.Add(new ReportParameter("param1", "103 / 11 / 08 15 : 30")); rw.Add(new ReportParameter("param2", "103110813572240001")); rw.Add(new ReportParameter("param3", "台幣帳戶存款")); rw.Add(new ReportParameter("param4", "USD 1,000")); rw.Add(new ReportParameter("param5", "29.594")); rw.Add(new ReportParameter("param6", "TWD 29,594")); rw.Add(new ReportParameter("param7", "0312XXXXXXX219 - TWD")); rw.Add(new ReportParameter("param8", "王某某")); rw.Add(new ReportParameter("param9", "1357224 - 7654321 - 陳某某")); //# 加入資料來源 // 加入圖片 rw.Add(new ReportDataSource("Images", (DataTable)imgTable)); //# Pass report info via session & Go report viewer page Session["ReportWrapper"] = rw; return(Redirect("~/Report/ReportViewer.aspx")); }
public void durationExists() { ReportWrapper reportWrapper = new ReportWrapper("specifier1", ReportName.TELEMETRY_USAGE, 5, DurationModifier.HOURS); DateTime start = DateTime.Now.ToUniversalTime(); start = start.AddMilliseconds(-start.Millisecond); start = start.AddSeconds(-start.Second); addIntervalResourceStatus(reportWrapper, "rid1", start, (float)1.0); addIntervalEnergy(reportWrapper, "rid2", start, (float)1234.0); oadrReportType report = reportWrapper.generateReport("requestID"); string xml = SerializeOadrObject.serializeOjbect(report, report.GetType()); Console.Out.WriteLine(xml); Assert.IsTrue(report.intervals[0].duration != null, "interval with 'interva' and 'point' data must have duration"); }
/**********************************************************/ public void addIntervalToReport(ReportWrapper reportWrapper, DateTime dtstart, int durationSeconds) { try { List <IntervalValue> intervals = queryIntervals(dtstart, durationSeconds); if (intervals.Count == 0) { return; } foreach (IntervalValue intervalValue in intervals) { addPayloadToReport(reportWrapper, intervalValue); } } catch (Exception ex) { Logger.logException(ex); } }
public void singleInterval() { ReportWrapper reportWrapper = new ReportWrapper("specifier1", ReportName.TELEMETRY_USAGE, 5, DurationModifier.HOURS); DateTime start = DateTime.Now.ToUniversalTime(); start = start.AddMilliseconds(-start.Millisecond); start = start.AddSeconds(-start.Second); addIntervalResourceStatus(reportWrapper, "rid1", start, (float)1.0); addIntervalResourceStatus(reportWrapper, "rid2", start, (float)2.0); oadrReportType report = reportWrapper.generateReport("requestID"); Assert.IsTrue(report.dtstart.datetime == report.intervals[0].dtstart.datetime); Assert.IsTrue(report.intervals.Length == 1, "data with same dtstart should be placed in a single interval"); string xml = SerializeOadrObject.serializeOjbect(report, report.GetType()); Console.Out.WriteLine(xml); }
/// <summary> /// 列印(一般化) /// </summary> /// <returns></returns> //public ActionResult Report() public async Task <ActionResult> Report() { //# 準備資料來源 List <Account> dataList = null; using (MyDatabaseEntities ctx = new MyDatabaseEntities()) { var qry = ctx.Account.SqlQuery("SELECT * FROM Account"); dataList = await qry.ToListAsync(); } //# Set report info ReportWrapper rw = new ReportWrapper(); rw.ReportPath = Server.MapPath("~/Report/rdlc/Report1.rdlc"); rw.ReportDataSources.Add(new ReportDataSource("Account", dataList)); //# Pass report info via session Session["ReportWrapper"] = rw; //# Go report viewer page return(Redirect("~/Report/ReportViewer.aspx")); }
/// <summary> /// 套表列印測試 /// </summary> public async Task <ActionResult> Overprint() { //# 準備資料來源 List <Like> dataList = null; using (MyDatabaseEntities ctx = new MyDatabaseEntities()) { var qry = ctx.Like.SqlQuery("SELECT * FROM [Like]"); dataList = await qry.ToListAsync(); } //# Set report info ReportWrapper rw = new ReportWrapper(); rw.ReportPath = Server.MapPath("~/Report/rdlc/OverReport.rdlc"); rw.Add(new ReportDataSource("Like", dataList)); rw.Add(new ReportParameter("string1", "我是字串")); rw.Add(new ReportParameter("integer1", "12345678")); rw.Add(new ReportParameter("float1", "98765.4321")); //# Pass report info via session & Go report viewer page Session["ReportWrapper"] = rw; return(Redirect("~/Report/ReportViewer.aspx")); }
/// <summary> /// 列印傳票(試作) /// </summary> public ActionResult PrintSampleTicket() { //# 準備資料來源 byte[] imgBlob = ReportDemoBiz.MakeQRCodeBlob(@"測試http://www.asiavista.com.tw/aaaaa/bbbbb?ccccc=ddddd&eeeee=fffff&ggggg=hhhhhiiiiijjjjjkkkkklllllmmmmm"); // 準備 Images 資料來源 ReportDataSet.ImagesDataTable imgTable = new ReportDataSet.ImagesDataTable(); var nr = imgTable.NewImagesRow(); imgTable.AddImagesRow(1, imgBlob, null, null); imgTable.AcceptChanges(); //------------------------------ //# Set report info ReportWrapper rw = new ReportWrapper(); rw.ReportPath = Server.MapPath("~/Report/rdlc/SampleTicket.rdlc"); rw.Add(new ReportParameter("param1", "103 / 11 / 08 15 : 30")); rw.Add(new ReportParameter("param2", "103110813572240001")); rw.Add(new ReportParameter("param3", "台幣帳戶存款")); rw.Add(new ReportParameter("param4", "USD 1,000")); rw.Add(new ReportParameter("param5", "29.594")); rw.Add(new ReportParameter("param6", "TWD 29,594")); rw.Add(new ReportParameter("param7", "0312XXXXXXX219 - TWD")); rw.Add(new ReportParameter("param8", "王某某")); rw.Add(new ReportParameter("param9", "1357224 - 7654321 - 陳某某")); rw.Add(new ReportParameter("param10", "")); //# 加入資料來源 // 加入圖片 rw.Add(new ReportDataSource("Images", (DataTable)imgTable)); //# Pass report info via session & Go report viewer page Session["ReportWrapper"] = rw; return(Redirect("~/Report/ReportViewer.aspx")); }
/// <summary> /// Creates a new PortCallClient instance. /// </summary> /// <param name="authorization">The API token.</param> /// <remarks> /// The key BlueCloud_ApiKey is used to specify the API token. /// </remarks> public ReportClient(string authorization) { _reportWrapper = new ReportWrapper(authorization); }
/**********************************************************/ /// <summary> /// generate the report if the next report is due /// set m_reportComplete to true if the last report was generated /// </summary> /// <param name="intervals"></param> /// <param name="reports"></param> /// <param name="sendReport"></param> public void generateUpdateReport(Dictionary <string, Interval> intervals, Dictionary <string, ReportWrapper> reports, ISendReport sendReport) { // this function is called from a thread // the lock ensures only invocation is active at a time (helps when debugging) lock (this) { try { if (m_reportComplete) { return; } // specifies how often to send the report, and the duration of the report int reportBackDurationSeconds = (int)System.Xml.XmlConvert.ToTimeSpan(m_reportRequest.reportSpecifier.reportBackDuration.duration).TotalSeconds; DateTime now = DateTime.Now; DateTime dtstart = now; int durationSeconds = 0; if (m_reportRequest.reportSpecifier.reportInterval == null) { // oneshot report; -1 tells the interval to report the most recent value dtstart = now; durationSeconds = -1; m_reportComplete = true; } else if (reportBackDurationSeconds == 0) { // history report dtstart = m_reportRequest.reportSpecifier.reportInterval.properties.dtstart.datetime.ToLocalTime(); durationSeconds = (int)System.Xml.XmlConvert.ToTimeSpan(m_reportRequest.reportSpecifier.reportInterval.properties.duration.duration).TotalSeconds; m_reportComplete = true; } else { // periodic report dtstart = m_reportRequest.reportSpecifier.reportInterval.properties.dtstart.datetime.ToLocalTime(); durationSeconds = (int)System.Xml.XmlConvert.ToTimeSpan(m_reportRequest.reportSpecifier.reportInterval.properties.duration.duration).TotalSeconds; // the report end time has passed if (now > dtstart.AddSeconds(durationSeconds + 30) && durationSeconds != 0) { m_reportComplete = true; return; } if (now >= dtstart && (now <= dtstart.AddSeconds(durationSeconds + 30) || durationSeconds == 0)) { if (now >= m_lastReported.AddSeconds(reportBackDurationSeconds)) { // // TODO: this function is crap and needs to be unit tested and cleaned up // // doGenerateUpdateReport(intervals, now, reportBackDurationSeconds, reportWrapper, sendReport); // if true, the report has been cancelled but a final report should be sent if (m_reportToFollow) { m_reportComplete = true; } m_lastReported = now; // set dtstart to the value of the newest interval // all reported intervals should have a date <= dtstart dtstart = m_lastReported; // the duration of a periodic report is equal to reportBackDurationSeconds durationSeconds = reportBackDurationSeconds; } else { return; // not time to send the next report yet } } else { return; // report dtstart hasn't passed yet } } // // time to generate a report: dtstart is the report start time and durationSeconds is the length of the report // if it's a metadata report, it's handled below (outside of the lock) // if (m_reportRequest.reportSpecifier.reportSpecifierID != "METADATA") { ReportWrapper reportWrapper = reports[m_reportRequest.reportSpecifier.reportSpecifierID]; doGenerateUpdateReport(intervals, dtstart, durationSeconds, reportWrapper, sendReport); } } catch (Exception ex) { m_reportComplete = true; oadrlib.lib.helper.Logger.logMessage("Exception caught handling reportRequest. Cancelling report."); oadrlib.lib.helper.Logger.logException(ex); } } if (m_reportRequest.reportSpecifier.reportSpecifierID == "METADATA") { sendReport.sendMetadataReport(m_reportRequest.reportRequestID); } }
/**********************************************************/ private void doGenerateUpdateReport(Dictionary <string, Interval> intervals, DateTime dtstart, int durationSeconds, ReportWrapper reportWrapper, ISendReport sendReport) { try { // make sure only one thread is generating for this report lock (reportWrapper) { // int reportBackDurationSeconds = (int)System.Xml.XmlConvert.ToTimeSpan(m_reportRequest.reportSpecifier.reportBackDuration.duration).TotalSeconds; // these two parameters indicate when to start reporting (dtstart) and for how long to continue reporting (duration) // they're not needed by the interval // DateTime dtstartUTC = (m_reportRequest.reportSpecifier.reportInterval == null ? DateTime.Now : m_reportRequest.reportSpecifier.reportInterval.properties.dtstart.datetime); // int durationSeconds = (m_reportRequest.reportSpecifier.reportInterval == null ? 0 : (int)System.Xml.XmlConvert.ToTimeSpan(m_reportRequest.reportSpecifier.reportInterval.properties.duration.duration).TotalSeconds); // ReportWrapper reportWrapper = reports[reportSpecifierID]; foreach (SpecifierPayloadType specifierPaylod in m_reportRequest.reportSpecifier.specifierPayload) { try { string rid = specifierPaylod.rID; Interval interval = intervals[rid]; interval.addIntervalToReport(reportWrapper, dtstart, durationSeconds); } catch (KeyNotFoundException ex) { // there's a situation where a resource has been removed and the new report hasn't // yet been registered with the VTN which will cause a key not found error when we // try to generate the report. this is expected behaviour oadrlib.lib.helper.Logger.logException(ex); } catch (Exception ex) { m_reportComplete = true; oadrlib.lib.helper.Logger.logException(ex); } } oadrReportType report = reportWrapper.generateReport(m_reportRequest.reportRequestID); sendReport.sendUpdateReport(report, m_reportRequest); } } catch (Exception ex) { // an exception here indicates a problem with the xml m_reportComplete = true; oadrlib.lib.helper.Logger.logException(ex); } }
public JsonResult GetReport( reportModel data, List <reportParm> parms, List <reportParm> extensionParms = null) { MSGReturnModel result = new MSGReturnModel(); result.RETURN_FLAG = false; try { string title = "(報表名稱)"; if (data.className.IsNullOrWhiteSpace()) { result.DESCRIPTION = Message_Type.parameter_Error.GetDescription(null, "無呼叫的className"); return(Json(result)); } if (!data.title.IsNullOrWhiteSpace()) { title = data.title; } //object obj = AppDomain.CurrentDomain.CreateInstanceAndUnwrap("Transfer", $"Transfer.Report.Data.{data.className}"); object obj = Activator.CreateInstance(Assembly.Load("Transfer").GetType($"Transfer.Report.Data.{data.className}")); MethodInfo[] methods = obj.GetType().GetMethods(); MethodInfo mi = methods.FirstOrDefault(x => x.Name == "GetData"); if (mi == null) { //請檢查是否實作資料獲取 result.DESCRIPTION = "報表錯誤請聯絡IT人員!"; return(Json(result)); } DataSet ds = (DataSet)mi.Invoke(obj, new object[] { parms }); List <reportParm> eparm = (List <reportParm>)(obj.GetType().GetProperty("extensionParms").GetValue(obj)); // Set report info ReportWrapper rw = new ReportWrapper(); rw.ReportPath = Server.MapPath($"~/Report/Rdlc/{data.className}.rdlc"); for (int i = 0; i < ds.Tables.Count; i++) { rw.ReportDataSources.Add(new ReportDataSource("DataSet" + (i + 1).ToString(), ds.Tables[i])); } rw.ReportParameters.Add(new ReportParameter("Title", title)); rw.ReportParameters.Add(new ReportParameter("ReportTitle", "富邦人壽")); rw.ReportParameters.Add(new ReportParameter("Emp", $@"{AccountController.CurrentUserInfo.Name}({AccountController.CurrentUserName})")); rw.ReportParameters.Add(new ReportParameter("Name", data.className)); if (extensionParms != null) { rw.ReportParameters.AddRange(extensionParms.Select(x => new ReportParameter(x.key, x.value))); } if (eparm.Any()) { rw.ReportParameters.AddRange(eparm.Select(x => new ReportParameter(x.key, x.value))); } rw.IsDownloadDirectly = false; // Pass report info via session Session["ReportWrapper"] = rw; result.RETURN_FLAG = true; } catch (Exception ex) { result.RETURN_FLAG = false; result.DESCRIPTION = ex.exceptionMessage(); } return(Json(result)); }
// POST: api/Report public string Post(ReportWrapper report) { var httpRequest = HttpContext.Current.Request; if (httpRequest.Headers["PayeBash"] != null) { PayeDBEntities db = new PayeDBEntities(); if (report.ComplainantId != null && report.Type != null) { var complainantId = db.Users.FirstOrDefault(i => i.UserId.ToString() == report.ComplainantId).Id; /*long*/ string userId = "0"; long postId = 0; int cnt = 0; if (!string.IsNullOrEmpty(report.UserId)) { userId = db.Users.FirstOrDefault(i => i.UserId.ToString() == report.UserId).Id; cnt = db.ReportPosts.Where(i => i.ComplainantId == complainantId && i.UserId == userId).Count(); } else if (!string.IsNullOrEmpty(report.PostId)) { postId = db.Posts.Where(r => r.postId.ToString() == report.PostId).FirstOrDefault().Id; cnt = db.ReportPosts.Where(i => i.ComplainantId == complainantId && i.PostId == postId).Count(); } if (cnt > 0) { var record = db.ReportPosts.FirstOrDefault(i => i.ComplainantId == complainantId && (i.PostId == postId || i.UserId == userId)); record.Type = report.Type; record.Modifiedate = DateTime.Now; db.Entry(record).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); return("گزارش شما با موفقیت ثبت گردید"); } else { try { ReportPost tb = new ReportPost(); tb.ComplainantId = complainantId; tb.PostId = postId; tb.UserId = userId; tb.Type = report.Type; tb.Status = false; tb.Modifiedate = DateTime.Now; db.ReportPosts.Add(tb); db.SaveChanges(); return("گزارش شما با موفقیت ثبت گردید");; } catch (Exception ex) { return("خطا در ارسال"); } } } else { return("خطا در ارسال"); } } return(null); }
/**********************************************************/ public override void addPayloadToReport(ReportWrapper reportWrapper, IntervalValue intervalValue) { PowerValue pv = (PowerValue)intervalValue; reportWrapper.addIntervalReportPayload(pv.DateTime.ToUniversalTime(), RID, pv.Confidence, pv.Accuracy, pv.Value, DataQuality.qualityGoodNonSpecific, m_intervalMinutes, DurationModifier.MINUTES); }
/// <summary> /// Creates a new PortCallClient instance. /// </summary> /// <param name="serverAddress">The server address.</param> /// <param name="authorization">The API token.</param> /// <remarks> /// The key BlueCloud_ApiKey is used to specify the API token, the key BlueCloud_ServerAddress is used to set the /// service address. If the service address is not specified as constructor parameter, /// the default service address will be used. /// </remarks> public ReportClient(string serverAddress, string authorization) { _reportWrapper = new ReportWrapper(serverAddress, authorization); }
/**********************************************************/ abstract public void addPayloadToReport(ReportWrapper reportWrapper, IntervalValue intervalValue);