Exemple #1
0
        public void MeasurementReaderSingleLineInputTest()
        {
            const string input =
                "2020-12-27T23:40:29.571091,M,M0,W0,M1,W1,M2,W2,M3,W3,M4,W4,M5,W5,M6,W6,M7,W7,M8,W8,M9,W9,CRC,0\n" +
                "2020-12-27T23:40:29.676928,M,2506,0,2496,8572,2503,8028,2506,8356,2506,8360,2508,8356,2501,8344,2503,8372,2491,8372,2498,8388,61392,1\n";
            var stream        = new StringStream(input);
            var measureReader = new MeasurementReader(stream.Reader);

            Assert.IsTrue(measureReader.HasNext(), "before asking for a measurement, HasNext is true");
            var measurement = measureReader.NextMeasurement();

            Assert.IsTrue(measureReader.CrcOk, "CRC is OK");
            Assert.AreEqual(DateTime.Parse("2020-12-27T23:40:29.676928"), measurement.Timestamp, "Date parsed correctly");
            Assert.AreEqual(2506, measurement.Value, "Correct value selected for #1");
            Assert.AreEqual(0, measurement.Delay, "Correct delay selected for #1");
            measurement = measureReader.NextMeasurement();
            Assert.AreEqual(DateTime.Parse("2020-12-27T23:40:29.677028"), measurement.Timestamp, "TImestamp calculated correctly");
            Assert.AreEqual(2496, measurement.Value, "Correct value selected for #2");
            Assert.AreEqual(8572, measurement.Delay, "Correct ValueTuple selected for #2");
            var measurementCount = 0;

            while (measureReader.HasNext())
            {
                measurement = measureReader.NextMeasurement();
                measurementCount++;
            }
            Assert.AreEqual(8, measurementCount, "8 more data points read");
            Assert.AreEqual(DateTime.Parse("2020-12-27T23:40:29.677828"), measurement.Timestamp, "Last timestamp correctly calculated");
            Assert.AreEqual(2498, measurement.Value, "Last value correctly selected");
            Assert.AreEqual(8388, measurement.Delay, "Last delay correctly selected");
        }
Exemple #2
0
        static void Main(string[] args)
        {
            // Ikke akkurat dependency injection
            using (var context = new TellerContext())
            {
                var eventRepo         = new EventRepository(context);
                var measurementRepo   = new MeasurementRepository(context);
                var eventFetcher      = new FilesystemEventDataFetcher();
                var measurementReader = new MeasurementReader();
                var fileArchiver      = new FileArchiver();

                var ingestor = new MeasurementIngestor(eventRepo, measurementRepo, eventFetcher, measurementReader, fileArchiver);

                ingestor.ReadAndIngestData();
            }

            using (var context = new TellerContext())
            {
                var eventRepo = new EventRepository(context);

                var allEvents = eventRepo.GetAll()
                                .ToList();

                var test = new RenderTest();

                foreach (var bsEvent in allEvents)
                {
                    test.Render(bsEvent);
                }
            }
        }
        public void ReadMeasurement_WhenGivenGoodFile_ReturnsExpectedData()
        {
            // Arrange
            const string inputFile       = @"..\..\TestData\438533_Viking_2015-09-08T10-57.xml";
            var          measurementFile = new MeasurementFile(inputFile);
            var          sut             = new MeasurementReader();

            // Act
            var res = sut.ReadMeasurement(measurementFile);

            // Assert
            res.AmountSold.Should().Be(375);
            res.AmountSeasonTicket.Should().Be(8161);
            res.AmountAvailable.Should().Be(9610);
            res.AmountReserved.Should().Be(3280);
            res.AmountUnavailable.Should().Be(0);
            res.AmountTicketMaster.Should().Be(0);
            res.AmountUnknown.Should().Be(216);
        }
Exemple #4
0
        public void ReadMeasurement_WhenGivenGoodFile_ReturnsExpectedData()
        {
            // Arrange
            const string inputFile       = @"..\..\TestData\archive\2015_LEAGUE_8_Odd_438523\438523_Odd_2015-06-30T12-12.xml";
            var          measurementFile = new MeasurementFile(inputFile);
            var          sut             = new MeasurementReader();

            // Act
            var res = sut.ReadMeasurement(measurementFile);

            // Assert
            res.AmountSold.Should().Be(1352);
            res.AmountSeasonTicket.Should().Be(8098);
            res.AmountAvailable.Should().Be(9201);
            res.AmountReserved.Should().Be(2933);
            res.AmountUnavailable.Should().Be(0);
            res.AmountTicketMaster.Should().Be(0);
            res.AmountUnknown.Should().Be(61);
        }
Exemple #5
0
        static void Main(string[] args)
        {
            var sw = new Stopwatch();

            sw.Start();

            SetupTraceListeners();

            List <BillettServiceEvent> updatedEvents;

            // Ikke akkurat dependency injection
            using (var context = new TellerContext())
            {
                var eventRepo         = new EventRepository(context);
                var measurementRepo   = new MeasurementRepository(context);
                var eventFetcher      = new FilesystemEventDataFetcher();
                var measurementReader = new MeasurementReader();
                var fileArchiver      = new FileArchiver();

                var ingestor = new MeasurementIngestor(eventRepo, measurementRepo, eventFetcher, measurementReader, fileArchiver);

                updatedEvents = ingestor.ReadAndIngestData().ToList();
            }

            Trace.TraceInformation("{0} events updated: {1}", updatedEvents.Count, String.Join(", ", updatedEvents.Select(e => e.EventNumber)));

            using (var context = new TellerContext())
            {
                var eventRepo = new EventRepository(context);

                var allEvents = eventRepo.GetAll()
                                //.Where(e => updatedEvents.Any(ue => ue.EventNumber == e.EventNumber))
                                .ToList();

                var missingFileEvents =
                    allEvents.Where(
                        ev =>
                        !File.Exists(Path.Combine(StautConfiguration.Current.StaticImageDirectory,
                                                  ev.EventNumber + ".png")))
                    .ToList();

                var eventsToRender =
                    missingFileEvents.Concat(
                        allEvents.Where(
                            ae =>
                            !missingFileEvents.Contains(ae) &&
                            updatedEvents.Any(ue => ue.EventNumber == ae.EventNumber))).ToList();

                var test = new RenderTest();

                foreach (var bsEvent in eventsToRender)
                {
                    test.Render(bsEvent);
                }
            }

            sw.Stop();
            Trace.TraceInformation("Ingest process complete, took {0}ms", sw.ElapsedMilliseconds);

            Trace.Flush();
            Trace.Close();
        }