Esempio n. 1
0
        public void CutFillResult_Population_Successful()
        {
            var original       = new GriddedReportResult(ReportType.Gridded);
            var griddedDataRow = new GriddedReportDataRow()
            {
                Northing    = 1.0,
                Easting     = 2.0,
                Elevation   = 3.0,
                CutFill     = 4.0,
                Cmv         = 5,
                Mdp         = 6,
                PassCount   = 7,
                Temperature = 8
            };

            original.GriddedData.Rows.Add(griddedDataRow);
            original.GriddedData.ReportElevation   = true;
            original.GriddedData.ReportCutFill     = true;
            original.GriddedData.ReportCmv         = false;
            original.GriddedData.ReportMdp         = true;
            original.GriddedData.ReportPassCount   = false;
            original.GriddedData.ReportTemperature = true;

            var byteArrayOfOriginal = original.Write();
            var copyOfOrig          = new GriddedReportResult();

            copyOfOrig.Read(byteArrayOfOriginal);

            Assert.True(original.ReportType == copyOfOrig.ReportType, "Invalid report type");
            Assert.True(original.GriddedData.Rows.Count == copyOfOrig.GriddedData.Rows.Count, "Invalid number of rows");
            Assert.True(original.GriddedData.ReportCutFill == copyOfOrig.GriddedData.ReportCutFill, "Invalid ReportCutFull setting");
        }
Esempio n. 2
0
        private CompactionReportResult ConvertTRexGridResult(CompactionReportGridRequest request, Stream stream)
        {
            log.LogDebug($"{nameof(ConvertTRexGridResult)}: Retrieving response data from TRex");

            var griddedReportResult = new GriddedReportResult(ReportType.Gridded);

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

            var gridRows = new GridRow[griddedReportResult.GriddedData.NumberOfRows];

            // Populate an array of grid rows from the data
            for (var i = 0; i < griddedReportResult.GriddedData.NumberOfRows; i++)
            {
                gridRows[i] = GridRow.CreateRow(griddedReportResult.GriddedData.Rows[i], request);
            }

            var startTime = request.Filter != null && request.Filter.StartUtc.HasValue
        ? request.Filter.StartUtc.Value
        : DateTime.Now;
            var endTime = request.Filter != null && request.Filter.EndUtc.HasValue
        ? request.Filter.EndUtc.Value
        : DateTime.Now;

            var gridReport = GridReport.CreateGridReport(startTime, endTime, gridRows);

            return(CompactionReportResult.CreateExportDataResult(gridReport, 1));
        }
Esempio n. 3
0
        public void GriddedReportDataResult()
        {
            var projectUid = Guid.NewGuid();
            //Set these for testing Automapper - they're not actually used in the gridded data
            var cutFillDesignUid    = Guid.NewGuid();
            var cutFillDesignOffset = 1.5;
            var request             = new CompactionReportGridTRexRequest(
                projectUid, null,
                true, true, true, true, true, true,
                cutFillDesignUid, cutFillDesignOffset,
                null, GridReportOption.Automatic,
                800000, 400000, 800001, 400001, 2, null, null);

            var computeResult = new GriddedReportResult()
            {
                ReturnCode  = ReportReturnCode.NoError,
                ReportType  = ReportType.Gridded,
                GriddedData = AutoMapperUtility.Automapper.Map <GriddedReportData>(request)
            };

            computeResult.GriddedData.NumberOfRows = 1;
            computeResult.GriddedData.Rows.Add(new GriddedReportDataRow()
            {
                Northing    = 1.0,
                Easting     = 2.0,
                Elevation   = 3.0,
                CutFill     = 4.0,
                Cmv         = 5,
                Mdp         = 6,
                PassCount   = 7,
                Temperature = 8
            });
            var executorResult = new GriddedReportDataResult(computeResult.Write());

            var retrieved = new GriddedReportResult();

            using (var ms = new MemoryStream(executorResult.GriddedData))
            {
                using (var reader = new BinaryReader(ms, Encoding.UTF8, true))
                {
                    retrieved.ReturnCode = (ReportReturnCode)reader.ReadInt32();
                    retrieved.ReportType = (ReportType)reader.ReadInt32();

                    retrieved.GriddedData.Read(reader);
                }
            }

            retrieved.ReturnCode.Should().Be(computeResult.ReturnCode);
            retrieved.ReportType.Should().Be(computeResult.ReportType);
            retrieved.GriddedData.Should().NotBeNull();
            retrieved.GriddedData.NumberOfRows.Should().Be(computeResult.GriddedData.NumberOfRows);
            retrieved.GriddedData.Rows[0].Northing.Should().Be(computeResult.GriddedData.Rows[0].Northing);
            retrieved.GriddedData.Rows[0].Easting.Should().Be(computeResult.GriddedData.Rows[0].Easting);
            retrieved.GriddedData.Rows[0].Elevation.Should().Be(computeResult.GriddedData.Rows[0].Elevation);
            retrieved.GriddedData.Rows[0].CutFill.Should().Be(computeResult.GriddedData.Rows[0].CutFill);
            retrieved.GriddedData.Rows[0].Cmv.Should().Be(computeResult.GriddedData.Rows[0].Cmv);
            retrieved.GriddedData.Rows[0].Mdp.Should().Be(computeResult.GriddedData.Rows[0].Mdp);
            retrieved.GriddedData.Rows[0].PassCount.Should().Be(computeResult.GriddedData.Rows[0].PassCount);
            retrieved.GriddedData.Rows[0].Temperature.Should().Be(computeResult.GriddedData.Rows[0].Temperature);
        }
Esempio n. 4
0
        public void CutFillResult_Streaming_Successful()
        {
            // When Response returned via MasterData Proxies,
            //  it is converted to byte[], then stream then file stream, then back
            var original       = new GriddedReportResult(ReportType.Gridded);
            var griddedDataRow = new GriddedReportDataRow()
            {
                Northing    = 1.0,
                Easting     = 2.0,
                Elevation   = 3.0,
                CutFill     = 4.0,
                Cmv         = 5,
                Mdp         = 6,
                PassCount   = 7,
                Temperature = 8
            };

            original.GriddedData.Rows.Add(griddedDataRow);
            original.GriddedData.ReportElevation   = true;
            original.GriddedData.ReportCutFill     = true;
            original.GriddedData.ReportCmv         = false;
            original.GriddedData.ReportMdp         = true;
            original.GriddedData.ReportPassCount   = false;
            original.GriddedData.ReportTemperature = true;

            var byteArrayOfOriginal = original.Write();
            var copyOfOrig          = new GriddedReportResult();

            copyOfOrig.Read(byteArrayOfOriginal);

            // Graceful WebReq
            var fileStream       = new FileStreamResult(new MemoryStream(byteArrayOfOriginal), ContentTypeConstants.ApplicationOctetStream);
            var memoryStream     = (MemoryStream)fileStream.FileStream;
            var resultFromStream = new GriddedReportResult();

            resultFromStream.Read(memoryStream.ToArray());

            Assert.True(ReportType.Gridded == resultFromStream.ReportType, "Invalid report type");
            Assert.True(original.GriddedData.Rows.Count == resultFromStream.GriddedData.Rows.Count, "Invalid number of rows");
            Assert.True(original.GriddedData.ReportCutFill == resultFromStream.GriddedData.ReportCutFill, "Invalid ReportCutFull setting");
        }
Esempio n. 5
0
        protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item)
        {
            var request   = CastRequestObjectTo <CompactionReportGridTRexRequest>(item);
            var siteModel = GetSiteModel(request.ProjectUid);
            var filter    = ConvertFilter(request.Filter, siteModel);

            var tRexRequest = new GriddedReportRequest();
            var griddedReportRequestArgument = AutoMapperUtility.Automapper.Map <GriddedReportRequestArgument>(request);

            griddedReportRequestArgument.Filters = new FilterSet(filter);

            var response = await tRexRequest.ExecuteAsync(griddedReportRequestArgument);

            var result = new GriddedReportResult()
            {
                ReturnCode  = response?.ReturnCode ?? ReportReturnCode.UnknownError,
                ReportType  = ReportType.Gridded,
                GriddedData = AutoMapperUtility.Automapper.Map <GriddedReportData>(request)
            };

            result.GriddedData.NumberOfRows = response?.GriddedReportDataRowList.Count ?? 0;
            result.GriddedData.Rows.AddRange(response?.GriddedReportDataRowList ?? new List <GriddedReportDataRow>());
            return(new GriddedReportDataResult(result.Write()));
        }
Esempio n. 6
0
        private ExportResult ConvertTRexGridResult(Stream stream)
        {
            log.LogDebug($"{nameof(ConvertTRexGridResult)}: Retrieving response data from TRex");

            try
            {
                var griddedReportResult = new GriddedReportResult(ReportType.Gridded);
                griddedReportResult.Read((stream as MemoryStream)?.ToArray());

                var outputStream = new MemoryStream();
                var sb           = new StringBuilder();

                sb.Append($"{STR_NORTHING}, {STR_EASTING}");

                if (griddedReportResult.GriddedData.ReportElevation)
                {
                    sb.Append($", {STR_ELEVATION}");
                }
                if (griddedReportResult.GriddedData.ReportCutFill)
                {
                    sb.Append($", {STR_CUT_FILL}");
                }
                if (griddedReportResult.GriddedData.ReportCmv)
                {
                    sb.Append($", {STR_CMV}");
                }
                if (griddedReportResult.GriddedData.ReportMdp)
                {
                    sb.Append($", {STR_MDP}");
                }
                if (griddedReportResult.GriddedData.ReportPassCount)
                {
                    sb.Append($", {STR_PASS_COUNT}");
                }
                if (griddedReportResult.GriddedData.ReportTemperature)
                {
                    sb.Append($", {STR_TEMPERATURE}");
                }
                sb.Append(STR_INSERT_LINE);

                // Write a header...
                var bytes = Encoding.ASCII.GetBytes(sb.ToString());
                outputStream.Write(bytes, 0, bytes.Length);

                // Write a series of CSV records from the data...
                foreach (GriddedReportDataRowBase row in griddedReportResult.GriddedData.Rows)
                {
                    sb.Clear();

                    sb.Append(string.Format(CultureInfo.InvariantCulture, "{0:F3}, {1:F3}", row.Northing, row.Easting));
                    if (griddedReportResult.GriddedData.ReportElevation)
                    {
                        sb.Append(string.Format(CultureInfo.InvariantCulture, ", {0:F3}", row.Elevation));
                    }
                    if (griddedReportResult.GriddedData.ReportCutFill)
                    {
                        sb.Append(row.CutFill == VelociraptorConstants.NULL_SINGLE
              ? ", "
              : string.Format(CultureInfo.InvariantCulture, ", {0:F3}", row.CutFill));
                    }
                    if (griddedReportResult.GriddedData.ReportCmv)
                    {
                        sb.Append(row.Cmv == VelociraptorConstants.NO_CCV
              ? ", "
              : string.Format(CultureInfo.InvariantCulture, ", {0}", row.Cmv));
                    }
                    if (griddedReportResult.GriddedData.ReportMdp)
                    {
                        sb.Append(row.Mdp == VelociraptorConstants.NO_MDP
              ? ", "
              : string.Format(CultureInfo.InvariantCulture, ", {0}", row.Mdp));
                    }
                    if (griddedReportResult.GriddedData.ReportPassCount)
                    {
                        sb.Append(row.PassCount == VelociraptorConstants.NO_PASSCOUNT
              ? ", "
              : string.Format(CultureInfo.InvariantCulture, ", {0}", row.PassCount));
                    }
                    if (griddedReportResult.GriddedData.ReportTemperature)
                    {
                        sb.Append(row.Temperature == VelociraptorConstants.NO_TEMPERATURE
              ? ", "
              : string.Format(CultureInfo.InvariantCulture, ", {0}", row.Temperature));
                    }
                    sb.Append(STR_INSERT_LINE);

                    bytes = Encoding.ASCII.GetBytes(sb.ToString());
                    outputStream.Write(bytes, 0, bytes.Length);
                }

                outputStream.Close();

                return(ExportResult.Create(outputStream.ToArray(), 1));
            }
            catch
            {
                throw CreateServiceException <ExportGridCSVExecutor>();
            }
        }