private void inserisciDettagli(int id)
        {
            HtmlNodeCollection nodesAll = docDetailes.DocumentNode.SelectNodes(@"(//table[@class='tbl3']|//h2)");

            for (int nc = 0; nc < nodesAll.Count; nc++)// parto all'incontrario per un fattore d'indice
            {
                HtmlNode node = nodesAll[nc];
                if (node.Attributes.Count == 1 && node.Attributes[0].Value == "tbl3")
                {
                    doctemp.LoadHtml(node.InnerHtml);
                    HtmlNodeCollection rows = doctemp.DocumentNode.SelectNodes(@"(//tr)");
                    for (int i = 1; i < rows.Count; i++)// saltro la prima riga
                    {
                        HtmlNode noderow = rows[i];
                        doctempRow.LoadHtml(noderow.InnerHtml);
                        HtmlNodeCollection   trows = doctempRow.DocumentNode.SelectNodes(@"(//td)");
                        QuotazioniVinciteRow row   = Variabili._QuatazioniVinciteRow_newRow();
                        row.id = id;
                        row.enumTipoVincita = "";
                        if (trows[0].InnerText == "")
                        {
                            continue;
                        }
                        string valore = Normalize(trows[1].InnerText);
                        if (valore == "-")
                        {
                            valore = "0";
                        }
                        string[] valuta = valore.Split(" ");//valore, valuta
                        row.valore = valuta[0];
                        if (valuta.Length > 1)
                        {
                            row.valuta = valuta[1];
                        }
                        row.vincitori       = int.Parse(Normalize(trows[2].InnerText).Replace(".", ""));
                        row.premio          = trows[0].InnerText;
                        row.enumTipoVincita = nodesAll[nc - 1].InnerText;
                        Variabili._QuatazioniVincite_addRow(row);
                        trows.Clear();
                    }
                    rows.Clear();
                }
            }
            nodesAll.Clear();
        }
        public void downloadAllLotto()
        {
            if (DateTime.Now.Year == Variabili.annoDiInizio.Year && DateTime.Now.Month == Variabili.annoDiInizio.Month && DateTime.Now.Day == Variabili.annoDiInizio.Day)
            {
                return;
            }
            for (int i = 0; i <= (DateTime.Now.Year - Variabili.annoDiInizio.Year); i++)
            {
                Task <string> task   = Task.Run(async() => await downloadDataEstrazioniLotto());
                string        result = task.Result;
                doc.LoadHtml(result);
                int countPalla                = 0;
                List <LottoPalleRow> palle    = new List <LottoPalleRow>();
                LottoRow             row      = Variabili._LottoDs_newRow();
                HtmlNodeCollection   nodesAll = doc.DocumentNode.SelectNodes(@"(//a[contains(@href,'/risultati/estrazione')]|//td[@class='ball-24px']|//td[@class='superstar-24px']|//td[@class='jolly-24px'])"); //dal 28 marzo 2006
                if (nodesAll == null)
                {
                    continue;
                }
                for (int nc = nodesAll.Count - 1; nc != 0; nc--)// parto all'incontrario per un fattore d'indice
                {
                    HtmlNode node = nodesAll[nc];
                    if (node.Attributes.Count == 1 && node.Attributes[0].Value == "ball-24px")// dovrebbe esserci solamnente una classe ball-24px
                    {
                        int.TryParse(node.InnerText, out int value);
                        palle.Add(Variabili._LottoPalleDs_newRow(-1, value, "palla" + (++countPalla)));// non ho ancora l' id metto -1 come id temporaneo
                    }
                    else if (node.Attributes.Count == 1 && node.Attributes[0].Value == "superstar-24px")
                    {
                        int.TryParse(node.InnerText, out int value);
                        palle.Add(Variabili._LottoPalleDs_newRow(-1, value, "superstar"));
                    }
                    else if (node.Attributes.Count == 1 && node.Attributes[0].Value == "jolly-24px")
                    {
                        int.TryParse(node.InnerText, out int value);
                        palle.Add(Variabili._LottoPalleDs_newRow(-1, value, "jolly"));
                    }
                    else if (node.Attributes.Count == 2 && node.Attributes[0].Name == "href")
                    {//primo campo che si legge
                        countPalla = 0;
                        var data = node.Attributes[0].Value.Substring(Variabili.extractData.Length);
                        DateTime.TryParseExact(data, "dd-MM-yyyy", enUS, DateTimeStyles.None, out DateTime Data);
                        row.hrfQuotazioni = node.Attributes[0].Value;
                        row.data          = Data;
                        row.anno          = Data.Year;
                        if (Data <= Variabili.annoDiInizio)
                        {
                            continue;
                        }
                        Task <string> taskDetailes = Task.Run(async() => await downloadDataEstrazioniLottoDetailes(row.hrfQuotazioni));
                        if (taskDetailes == null)
                        {
                            continue;
                        }

                        int countEstrazione = dettagliEstrazione(taskDetailes.Result);
                        row.id          = creaIndice(countEstrazione);
                        row.nEstrazione = countEstrazione;
                        Variabili._LottoDs_addRow(row);
                        inserisciDettagli(row.id);
                        foreach (LottoPalleRow rowPalla in palle)
                        {
                            rowPalla.id = row.id;
                            Variabili._LottoPalleDs_addRow(rowPalla);
                        }
                        palle = new List <LottoPalleRow>();
                        row   = Variabili._LottoDs_newRow();
                    }
                }
                anno = anno.AddYears(1);
                Variabili._DsLottoSave();
            }
        }
 public KendoStatisticsData GetLottoStatisticsQuote()
 {
     return(Variabili._LottoStatisticsQuote());
 }
 public KendoData GetLottoDetailesFromId(int id)
 {
     return(Variabili._LottoDetailesFromId(id));
 }
 public List <Struct_Joing_AllTable> GetLottoPallefromId(int id)
 {
     return(Variabili._LottoPallefromId(id));
 }
 public KendoData GetLottoKendoQuery(string KendoQuery)
 {
     return(Variabili._LottoFromKendo(KendoQuery));
 }
 public List <Struct_Joing_AllTable> GetLottoAndBall()
 {
     return(Variabili._listLottoAndPalle());
 }