예제 #1
0
        public void incrementaNumeratoreFotoTest()
        {
            DateTime  dataUltimoScarico;
            const int gg = 123;
            int       newNum;

            // ---
            LumenApplication.Instance.stato.giornataLavorativa = new DateTime(2011, 10, 31);
            dataUltimoScarico = new DateTime(2011, 10, 20);
            newNum            = NumeratoreFotogrammi.eventualeAzzeramento("G", gg, dataUltimoScarico);
            Assert.IsTrue(newNum == 0);

            // ---
            dataUltimoScarico = new DateTime(2011, 10, 31);
            newNum            = NumeratoreFotogrammi.eventualeAzzeramento("G", gg, dataUltimoScarico);
            Assert.IsTrue(newNum == gg);

            // ---
            dataUltimoScarico = new DateTime(2011, 10, 30);
            newNum            = NumeratoreFotogrammi.eventualeAzzeramento("G", gg, dataUltimoScarico);
            Assert.IsTrue(newNum == 0);

            // questa è una anomalia. non so ancora come gestirla.
            dataUltimoScarico = new DateTime(2011, 11, 02);
            newNum            = NumeratoreFotogrammi.eventualeAzzeramento("G", gg, dataUltimoScarico);
            Assert.IsTrue(newNum == gg);


            // ---
            dataUltimoScarico = new DateTime(2000, 10, 31);
            newNum            = NumeratoreFotogrammi.eventualeAzzeramento("M", gg, dataUltimoScarico);
            Assert.IsTrue(newNum == 0);

            dataUltimoScarico = DateTime.Today.AddDays(-1);               // ieri
            newNum            = NumeratoreFotogrammi.eventualeAzzeramento("M", gg, dataUltimoScarico);
            Assert.IsTrue(newNum == gg);

            // ---
            try {
                newNum = NumeratoreFotogrammi.eventualeAzzeramento("x", gg, dataUltimoScarico);
                Assert.Fail();
            } catch (Exception) {
                // ok se ha dato eccezione va bene.
            }
        }
예제 #2
0
        public void ricostruire()
        {
            if (!analisiEffettuata)
            {
                throw new InvalidOperationException("Prima di ricostruire, occorre lanciare l'analisi");
            }

            foreach (string idFotografoMancante in idsFotografiMancanti)
            {
                creaFotografoMancante(idFotografoMancante);
            }
            int test = UnitOfWorkScope.currentDbContext.SaveChanges();

            int ultimoNumFoto = NumeratoreFotogrammi.incrementaNumeratoreFoto(fiFotosMancanti.Count);
            int conta         = 0;

            // Creo eventuali fotografie mancanti
            contaFotoAggiunte = 0;
            foreach (FileInfo fiFotoMancante in fiFotosMancanti)
            {
                creaFotografiaMancante(fiFotoMancante, ++conta + ultimoNumFoto);
            }

            // Elimino eventuali fotografie che non hanno più l'immagine jpg su disco
            contaFotoEliminate = 0;
            foreach (Fotografia f in fotografieSenzaImmagini)
            {
                UnitOfWorkScope.currentDbContext.Fotografie.Remove(f);
                ++contaFotoEliminate;
            }

            // Salvo il contesto
            int quanti = UnitOfWorkScope.currentDbContext.SaveChanges();

            // Piccolo controllo di paranoia
            if (quanti != fotografieSenzaImmagini.Count)
            {
                _giornale.Warn("Dovevo cancellare " + contaJpegMancanti + " fotografie ma in test mi dice: " + quanti);
            }
        }