예제 #1
0
        private CompactionReportResult ConvertTRexStationOffsetResult(CompactionReportStationOffsetRequest request, Stream stream)
        {
            log.LogDebug($"{nameof(ConvertTRexStationOffsetResult)}: Retrieving response data from TRex");

            var stationOffsetReportResult = new StationOffsetReportResultPackager(ReportType.StationOffset);

            stationOffsetReportResult.Read((stream as MemoryStream)?.ToArray());

            var stationRows = new StationRow[stationOffsetReportResult.GriddedData.NumberOfRows];

            for (var i = 0; i < stationOffsetReportResult.GriddedData.NumberOfRows; i++)
            {
                var station    = stationOffsetReportResult.GriddedData.Rows[i];
                var stationRow = StationRow.Create(station, request);

                for (var j = 0; j < station.Offsets.Count; j++)
                {
                    stationRow.Offsets[j] = StationOffsetRow.CreateRow(station.Offsets[j], request);
                }

                stationRows[i] = stationRow;
            }

            var startAndEndTime     = request.Filter.StartUtc ?? DateTime.UtcNow;
            var stationOffsetReport = new StationOffsetReport(startAndEndTime, startAndEndTime, stationRows, request);

            return(CompactionReportResult.CreateExportDataResult(stationOffsetReport, 1));
        }
예제 #2
0
        private CompactionReportResult ConvertStationOffsetResult(CompactionReportStationOffsetRequest request, Stream stream)
        {
            log.LogDebug($"{nameof(ConvertStationOffsetResult)}");

            // Unpack the data for the report and construct a stream containing the result
            var reportPackager = new TRaptorReportsPackager(TRaptorReportType.rrtStationOffset)
            {
                ReturnCode = TRaptorReportReturnCode.rrrcUnknownError
            };

            log.LogDebug($"{nameof(ConvertStationOffsetResult)}: Retrieving response data");
            reportPackager.ReadFromStream(stream);

            var stationRows = new StationRow[reportPackager.StationOffsetReport.NumberOfStations];

            for (var i = 0; i < reportPackager.StationOffsetReport.NumberOfStations; i++)
            {
                var station    = reportPackager.StationOffsetReport.Stations[i];
                var stationRow = StationRow.Create(station, request);

                for (var j = 0; j < station.NumberOfOffsets; j++)
                {
                    stationRow.Offsets[j] = StationOffsetRow.CreateRow(station.Offsets[j], request);
                }

                stationRows[i] = stationRow;
            }

            var startAndEndTime     = request.Filter.StartUtc ?? DateTime.UtcNow;
            var stationOffsetReport = new StationOffsetReport(startAndEndTime, startAndEndTime, stationRows, request);

            return(CompactionReportResult.CreateExportDataResult(stationOffsetReport, 1));
        }
예제 #3
0
            /// <summary>
            /// Creates new station row and assigns default StationID and Name
            /// </summary>
            /// <param name="pPrefix">The prefix.</param>
            /// <returns>New <see cref="StationRow"/></returns>
            public StationRow NewStationRow(string pPrefix)
            {
                //ulong id = 0;
                //foreach ( StationRow st in this )
                //  id = Math.Max( id, st.StationID );
                //id++;
                StationRow cr = NewStationRow();

                //cr.StationID = id;
                cr.Name = string.Format("{0}{2}Station{1}", pPrefix, cr.StationID.ToString(), m_IdentSep);
                return(cr);
            }
예제 #4
0
            /// <summary>
            /// Creates new station row and assigns default StationID and Name
            /// </summary>
            /// <param name="pRowToBeCopied">row to be copied</param>
            /// <param name="pShallowCopy">indicate if the copy is shallow or deep</param>
            /// <param name="pPrefix">prefix for the name</param>
            public void NewStationRow(StationRow pRowToBeCopied, bool pShallowCopy, string pPrefix)
            {
                StationRow rw = NewStationRow(pPrefix);

                AddStationRow(rw);
                if (!pShallowCopy)
                {
                    foreach (GroupsRow gr in pRowToBeCopied.GetGroupsRows())
                    {
                        ((ComunicationNet)DataSet).Groups.NewGroupsRow(rw.StationID, gr, false, rw.Name);
                    }
                }
                return;
            }