public List <GalvanicaConsuntivoModel> EstraiConsutivoUltimoPeriodo(int NumeroGiorni)
        {
            List <GalvanicaConsuntivoModel> consuntivo = new List <GalvanicaConsuntivoModel>();

            GalvanicaDS ds = new GalvanicaDS();

            using (GalvanicaBusiness bGalvanica = new GalvanicaBusiness())
            {
                bGalvanica.FillRW_GALV_CONSUNTIVO(ds);
                bGalvanica.FillRW_GALV_FERMI(ds);
            }
            DateTime fine   = DateTime.Now;
            DateTime inizio = fine.AddDays(NumeroGiorni * -1);

            foreach (GalvanicaDS.RW_GALV_CONSUNTIVORow m in ds.RW_GALV_CONSUNTIVO.Where(X => X.INIZIO_TURNO >= inizio && X.INIZIO_TURNO <= fine).OrderByDescending(X => X.INIZIO_TURNO))
            {
                GalvanicaConsuntivoModel model = CreaGalvanicaConsuntivo(m, ds);
                consuntivo.Add(model);
            }
            return(consuntivo);
        }
        public GalvanicaReportModel EstraiConsutivo(DateTime dataInizio, DateTime dataFine)
        {
            List <GalvanicaConsuntivoModel> consuntivo = new List <GalvanicaConsuntivoModel>();

            GalvanicaDS ds = new GalvanicaDS();

            using (GalvanicaBusiness bGalvanica = new GalvanicaBusiness())
            {
                bGalvanica.FillRW_GALV_CONSUNTIVO(ds);
                bGalvanica.FillRW_GALV_FERMI(ds);
            }

            List <GalvanicaDS.RW_GALV_CONSUNTIVORow> elementiTrovati = ds.RW_GALV_CONSUNTIVO.Where(X => X.INIZIO_TURNO >= dataInizio && X.INIZIO_TURNO < dataFine).ToList();

            int      barreTotali  = 0;
            TimeSpan durataTotale = new TimeSpan();
            TimeSpan fermoTotale  = new TimeSpan();

            foreach (GalvanicaDS.RW_GALV_CONSUNTIVORow m in elementiTrovati)
            {
                GalvanicaConsuntivoModel model = CreaGalvanicaConsuntivo(m, ds);
                consuntivo.Add(model);
                barreTotali += model.Barre;
                durataTotale = durataTotale.Add(model.Durata);
                fermoTotale  = fermoTotale.Add(model.FermoTotale);
            }
            GalvanicaReportModel report = new GalvanicaReportModel();

            report.Consuntivo      = consuntivo;
            report.BarreTotali     = barreTotali;
            report.FermoTotale     = fermoTotale;
            report.TempoTotale     = durataTotale;
            report.DurataEffettiva = report.TempoTotale.Subtract(report.FermoTotale);
            report.BarreHH         = report.DurataEffettiva.TotalHours == 0 ? 0 : Math.Round((decimal)(report.BarreTotali / report.DurataEffettiva.TotalHours), 1);
            report.MinBarre        = report.BarreTotali == 0 ? 0 : Math.Round((decimal)(report.DurataEffettiva.TotalMinutes / report.BarreTotali), 1);
            return(report);
        }