コード例 #1
0
        public void Koder_etter_antall_inkl_hvordan_vi_oppfatter_dem()
        {
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"D:\temp\staut\data\Godset-160301-1002.xml");
            var res  = sut.ReadSeats(file).ToList();

            var byCode = res.GroupBy(s => s.EttCode.Code)
                         .Select(
                g =>
                new
            {
                Code           = g.Key,
                Count          = g.Count(),
                Classification = SeatStatusClassifier.Classify(g.Key)
            })
                         .Where(g => g.Classification == SeatStatus.Sold)
                         .OrderByDescending(s => s.Count);

            var builder = new StringBuilder();

            foreach (var code in byCode)
            {
                builder.AppendLine(code.Code + ": " + code.Count + "stk. - " + code.Classification);
            }
            var output = builder.ToString();

            Console.WriteLine(output);
        }
コード例 #2
0
        public void Sesongkort_Only_FinnKoder()
        {
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"..\..\TestData\RBK-Glimt-020615-2048.xml");
            var res  = sut.ReadSeats(file).ToList();

            var allRelevantCodes = res.Where(s => s.EttCode.QualifierBits > 0x400 && s.EttCode.QualifierBits < 0x600)
                                   .GroupBy(s => s.EttCode.QualifierBitsHex)
                                   .Select(g => new { Code = g.Key, Seats = g.Count() })
                                   .OrderByDescending(g => g.Seats)
                                   .ToList();

            var bldr  = new StringBuilder();
            var seats = 0;

            foreach (var gruppe in allRelevantCodes)
            {
                bldr.AppendLine("Code: " + gruppe.Code + " Seter: " + gruppe.Seats);
                seats += gruppe.Seats;
            }
            bldr.AppendLine("Sum: " + seats);

            var output = bldr.ToString();

            Console.WriteLine(output);
        }
コード例 #3
0
        public void Hvor_ErDet_Ledig()
        {
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"..\..\TestData\RBK-mfk-160615-0953.xml");
            var res  = sut.ReadSeats(file).ToList();

            var freeSeats = res.Where(s => SeatStatusClassifier.Classify(s.EttCode) == SeatStatus.AvailableForPurchase)
                            .GroupBy(s => s.SectionName)
                            .Select(g => new { Section = g.Key, Antall = g.Count() })
                            .OrderBy(g => g.Section)
                            .ToList();

            var builder = new StringBuilder();
            var sum     = 0;

            foreach (var freeSeat in freeSeats)
            {
                builder.AppendFormat("Seksjon '{0}': {1} ledige seter\r\n", freeSeat.Section, freeSeat.Antall);
                sum += freeSeat.Antall;
            }

            builder.AppendFormat("Sum: {0} seter til salgs\r\n", sum);

            var output = builder.ToString();

            Console.WriteLine(output);
        }
コード例 #4
0
        public void ReadSeats_WhenGivedActualBSFile_HaveSomeFun()
        {
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"..\..\TestData\RBK-TIL-180515-1007.xml");

            // Act
            var res = sut.ReadSeats(file).ToList();

            var grouped = res.GroupBy(s => s.EttCode.Code)
                          .Select(g => new { Ett = g.Key, Seats = g.ToList() })
                          .OrderByDescending(g => g.Seats.Count)
                          .ToList();

            var builder = new StringBuilder();

            foreach (var grp in grouped)
            {
                builder.AppendLine(String.Format("{0}: {1}", grp.Ett, grp.Seats.Count));
            }

            var sesongkort = res.Count(s => s.EttCode.QualifierBitsHex.StartsWith("4"));

            var stats = res.Select(s => SeatStatusClassifier.Classify(s.EttCode))
                        .GroupBy(s => s)
                        .Select(s => new { Status = s.Key, Count = s.Count() })
                        .OrderByDescending(g => g.Count)
                        .ToList();

            var oversikt = builder.ToString();

            Console.WriteLine(oversikt);
        }
コード例 #5
0
        protected override void BeginProcessing()
        {
            base.BeginProcessing();

            var reader = new BillettServiceSeteLeser();
            var file   = BillettServiceXmlFile.LoadFile(_filename);

            _seats = reader.ReadSeats(file).ToList();
        }
コード例 #6
0
        public void vennebillett_stuff_test()
        {
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"..\..\TestData\RBK-TIL-310515-1415.xml");
            var res  = sut.ReadSeats(file).ToList();

            var pa = res.Where(s => s.SectionName.Contains("EA") && s.RowName == "21").ToList();

            var joakim = res.Where(s => s.EttCode.QualifierBitsHex == "591").ToList();
        }
コード例 #7
0
        public void Sum_SolgteOgSesongkort_HeleStadion()
        {
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"D:\temp\staut\data\Godset-160309-1300.xml");
            var res  = sut.ReadSeats(file).ToList();

            var sold = res.Select(s => SeatStatusClassifier.Classify(s.EttCode))
                       .Where(s => s == SeatStatus.SeasonTicket || s == SeatStatus.Sold)
                       .Count();

            Console.WriteLine(sold);
        }
コード例 #8
0
        public void Plasser_hos_Kjernen()
        {
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"D:\temp\staut\data\Godset-160301-1002.xml");
            var res  = sut.ReadSeats(file).ToList();

            var allRelevantCodes = res.Where(s => s.SectionName.Contains("KJ"))
                                   .ToList();

            var output = allRelevantCodes.Count;

            Console.WriteLine(output);
        }
コード例 #9
0
        public void Kode_By_Field()
        {
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"..\..\TestData\RBK-TIL-300515-0040.xml");
            var res  = sut.ReadSeats(file).ToList();

            var pa = res.Where(s => s.EttCode.QualifierBitsHex == "17")
                     .GroupBy(s => s.SectionName)
                     .Select(g => new { Section = g.Key, Seats = g.Count() })
                     .OrderByDescending(g => g.Seats)
                     .ToList();

            Console.WriteLine(pa.Count);
        }
コード例 #10
0
        public void finn_vanligste_koder()
        {
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"..\..\TestData\RBK-TIL-310515-1415.xml");
            var res  = sut.ReadSeats(file).ToList();

            var pa = res.Where(s => s.SectionName.Contains("KJ"))
                     .GroupBy(s => s.EttCode.Code)
                     .Select(g => new { Code = g.Key, Seats = g.Count() })
                     .OrderByDescending(g => g.Seats)
                     .ToList();

            Console.WriteLine("Break here");
        }
コード例 #11
0
        public void ReadSeats_WhenGivenNullXDocument_ReturnsEmptySequence()
        {
            // Arrange
            XDocument xdoc = null;
            var       sut  = new BillettServiceSeteLeser();

            // Act
            // ReSharper disable once ExpressionIsAlwaysNull
            var res = sut.ReadSeats(xdoc).ToList();

            // Assert
            res.Should().NotBeNull("we should get an empty enumeration");
            res.Count.Should().Be(0, "there should be no items in the list");
        }
コード例 #12
0
        public void Bortesupportere_Solgt()
        {
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"D:\temp\staut\TestData\438531_Stabæk_2015-09-08T10-57.xml");
            var res  = sut.ReadSeats(file).ToList();

            var allRelevantCodes = res.Where(s => s.SectionName.Contains("SB") || s.SectionName.Contains("RB"))
                                   .Select(s => SeatStatusClassifier.Classify(s.EttCode))
                                   .GroupBy(g => g)
                                   .Select(g => new { Code = g.Key, Count = g.Count() })
                                   .ToList();

            var output = allRelevantCodes.Count;

            Console.WriteLine(output);
        }
コード例 #13
0
        public void Status_Plasser_hos_Kjernen()
        {
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"D:\temp\staut\data\Godset-160301-1002.xml");
            var res  = sut.ReadSeats(file).ToList();

            var allRelevantCodes = res.Where(s => s.SectionName.Contains("KJ"))
                                   .Select(s => SeatStatusClassifier.Classify(s.EttCode))
                                   .GroupBy(g => g)
                                   .Select(g => new { Code = g.Key, Count = g.Count() })
                                   .ToList();

            var output = allRelevantCodes.Count;

            Console.WriteLine(output);
        }
コード例 #14
0
        public void surr_sull_tull()
        {
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"..\..\TestData\RBK-TIL-010615-0812.xml");

            // Act
            var res   = sut.ReadSeats(file).ToList();
            var stats = res.Select(s => SeatStatusClassifier.Classify(s.EttCode))
                        .GroupBy(s => s)
                        .Select(s => new { Status = s.Key, Count = s.Count() })
                        .OrderByDescending(g => g.Count)
                        .ToList();

            var builder = new StringBuilder();
            var sum     = 0;

            foreach (var item in stats)
            {
                builder.AppendLine(item.Status + ": " + item.Count);
                sum += item.Count;
            }
            builder.AppendLine("--------------------------");
            builder.AppendLine("Sum: " + sum);
            var result = builder.ToString();

            var ukjent = res//.Where(s => SeatStatusClassifier.Classify(s.EttCode) == SeatStatus.Unavailable)
                         .GroupBy(s => s.EttCode.Code)
                         .Select(s => new { Code = s.Key, Seats = s.ToList() })
                         .OrderBy(g => g.Code)
                         .ToList();

            var bldr    = new StringBuilder();
            var ukjente = 0;

            foreach (var gruppe in ukjent)
            {
                bldr.AppendLine("Code: " + gruppe.Code + " Seter: " + gruppe.Seats.Count);
                ukjente += gruppe.Seats.Count;
            }
            bldr.AppendLine("Sum: " + ukjente);
            var moro = bldr.ToString();

            var kanskjesolgt = res.Count(s => s.EttCode.QualifierBitsHex.StartsWith("5"));

            Console.WriteLine(moro);
        }
コード例 #15
0
ファイル: ReadSeats.cs プロジェクト: whitehorse1126/staut
        protected override void ProcessRecord()
        {
            base.ProcessRecord();

            var reader = new BillettServiceSeteLeser();
            var file   = BillettServiceXmlFile.LoadFile(_filename);
            var seats  = reader.ReadSeats(file).ToList();

            WriteVerbose("Antall seter: " + seats.Count);

            try
            {
                WriteObject(seats.Select(s => new Seat(s)), true);
            }
            catch (PipelineStoppedException e)
            {
                WriteWarning("Caught exception: " + e.Message);
            }
        }
コード例 #16
0
        public void ReadSeats_WhenGivenActualBSFile_ReturnsCorrectSeatInfo()
        {
            // Arrange
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"..\..\TestData\Test.xml");

            // Act
            var res = sut.ReadSeats(file).ToList();

            // Assert
            res.Count.Should().Be(21645, "that is the number of seats in the file");

            // Stikkprøver
            var remTaRow24 = res.Where(s => s.SectionName == "REM-TA" && s.RowName == "24").ToList();

            remTaRow24.Count.Should().Be(22, "there should be 22 seats in this row");

            remTaRow24[0].EttCode.Code.Should().Be("000004CD0001", "that is the code on the first seat in the XML file");
            remTaRow24[7].EttCode.Code.Should().Be("000000000000", "that is the code on the eight seat in the XML file");
        }
コード例 #17
0
        public void Query_Tribune_Oversikt()
        {
            // Arrange
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"D:\temp\staut\testdata\438527_VÃ¥lerenga_2015-08-15T14-03.xml");

            //var summary = new CountSummary().CreateCountSummary(file);

            var res = sut.ReadSeats(file).ToList();

            var stats = res.Where(s => s.Position.Contains("KJ")) //|| s.Position.Contains("RB"))
                        .Select(s => SeatStatusClassifier.Classify(s.EttCode))
                        .GroupBy(s => s)
                        .Select(g => new { Status = g.Key, Count = g.Count() })
                        .ToList();

            // Act
            Console.WriteLine("Res: ", stats.Count);
            // Assert
        }
コード例 #18
0
        public void ukjente_sesongkort_locator()
        {
            var sut  = new BillettServiceSeteLeser();
            var file = BillettServiceXmlFile.LoadFile(@"..\..\TestData\RBK-TIL-250515-1409.xml");
            var res  = sut.ReadSeats(file).ToList();

            var ukjenteKoder = res.Where(s => s.EttCode.QualifierBitsHex.StartsWith("4") && !SeatStatusClassifier.IsKnownSeasonTicketCode(s.EttCode))
                               .GroupBy(s => s.EttCode.Code)
                               .Select(s => new { Code = s.Key, Seats = s.ToList() })
                               .OrderByDescending(g => g.Seats.Count)
                               .ToList();

            var bldr    = new StringBuilder();
            var ukjente = 0;

            foreach (var gruppe in ukjenteKoder)
            {
                bldr.AppendLine("Code: " + gruppe.Code + " Seter: " + gruppe.Seats.Count);
                ukjente += gruppe.Seats.Count;
            }
            bldr.AppendLine("Sum: " + ukjente);
            var moro = bldr.ToString();
        }