Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        /************************************************************************************************************************/

        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);
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        /**********************************************************/

        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);*/
        }
Ejemplo n.º 11
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");
        }
Ejemplo n.º 12
0
        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));
        }
Ejemplo n.º 13
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"));
        }
Ejemplo n.º 14
0
        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");
        }
Ejemplo n.º 15
0
        /**********************************************************/

        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);
            }
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        /// <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"));
        }
Ejemplo n.º 18
0
        /// <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"));
        }
Ejemplo n.º 19
0
        /// <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);
 }
Ejemplo n.º 21
0
        /**********************************************************/

        /// <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);
            }
        }
Ejemplo n.º 22
0
        /**********************************************************/

        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);
            }
        }
Ejemplo n.º 23
0
        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));
        }
Ejemplo n.º 24
0
        // 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);
        }
Ejemplo n.º 25
0
        /**********************************************************/

        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);
 }
Ejemplo n.º 27
0
        /**********************************************************/

        abstract public void addPayloadToReport(ReportWrapper reportWrapper, IntervalValue intervalValue);