public IEnumerable <MongoModel> ChooseLottery(List <List <string> > htmlLines, string lotteryName)
        {
            _logger.LogDebug($"Initializing loading for lottery {lotteryName}");
            switch (lotteryName)
            {
            case "DuplaSena":
                return(DuplaSenaExtensionMethods.Load(htmlLines));

            case "Federal":
                return(FederalExtensionMethods.Load(htmlLines));

            case "TimeMania":
                return(TimeManiaExtensionMethods.Load(htmlLines));

            case "Quina":
                return(QuinaExtensionMethods.Load(htmlLines));

            case "LotoMania":
                return(LotoManiaExtensionMethods.Load(htmlLines));

            case "LotoGol":
                return(LotoGolExtensionMethods.Load(htmlLines));

            case "LotoFacil":
                return(LotoFacilExtensionMethods.Load(htmlLines));

            case "Loteca":
                return(LotecaExtensionMethods.Load(htmlLines));

            case "MegaSena":
                return(MegaSenaExtensionMethods.Load(htmlLines));

            default:
                _logger.LogError($"Error when try to load lottery {lotteryName}.");
                throw new NotSupportedException($"Lottery {lotteryName} did not support.");
            }
        }
        public void ExtensioMethod_Quina_Test()
        {
            var listOfValuesQuina = new List <List <string> >
            {
                new List <string>
                {
                    "1",
                    "13/03/1994",
                    "25",
                    "45",
                    "60",
                    "76",
                    "79",
                    "0,00",
                    "3",
                    "&nbsp",
                    "&nbsp",
                    "75.731.225,00",
                    "127",
                    "1.788.927,00",
                    "7030",
                    "42.982,00",
                    "0",
                    "0,00",
                    "NÃO",
                    "0,00",
                    "0,00",
                    "0,00"
                }
            };
            var expectedQuina = new List <Quina>
            {
                new Quina
                {
                    LotteryId    = 1,
                    DateRealized = new DateTime(1994, 03, 13),
                    Dozens       = new List <int> {
                        25, 45, 60, 76, 79
                    }.OrderBy(c => c).ToList(),
                    TotalAmount               = 0.00m,
                    Winners5                  = 3,
                    City                      = string.Empty,
                    UF                        = string.Empty,
                    Average5Numbers           = 75731225.00m,
                    Winners4                  = 127,
                    Average4Numbers           = 1788927.00m,
                    Winners3                  = 7030,
                    Average3Numbers           = 42982.00m,
                    Winners2                  = 0,
                    Average2Numbers           = 0.00m,
                    IsAccumulated             = false,
                    AccumulatedValue          = 0.00m,
                    EstimatePrize             = 0.00m,
                    AccumulatedSorteioSaoJoao = 0.00m
                }
            };

            var actualResult = QuinaExtensionMethods.Load(listOfValuesQuina).ToList();

            Assert.AreEqual(expectedQuina.ToString(), actualResult.ToString());
            CollectionAssert.AreEqual(expectedQuina, actualResult);
            Assert.AreNotEqual(expectedQuina.First().GetHashCode(), actualResult.First().GetHashCode());
        }