예제 #1
0
        public void stampaProviniTestAbort()
        {
            ParamStampaProvini param = new ParamStampaProvini();

            CodaDiStampe c1 = new CodaDiStampe(param, Costanti.NomeStampantePdf);

            c1.Stop();

            using (new UnitOfWorkScope(false))
            {
                ParamStampaProvini p = ricavaParamStampaProvini();
                p.numeroColonne  = 3;
                p.numeroRighe    = 4;
                p.macchiaProvini = true;

                LumenEntities     dbContext = UnitOfWorkScope.currentDbContext;
                List <Fotografia> fotos     = (from f in dbContext.Fotografie.Include("fotografo")
                                               select f).Take(QUANTE).ToList();

                c1.EnqueueItem(new LavoroDiStampaProvini(fotos, p));
                // Accodo una stampa in modo da testare l'abort

                c1.Stop(Threading.PendingItemAction.AbortPendingItems);
                c1.Dispose();
            }
        }
예제 #2
0
        public void stampaProviniFotoProviniTest()
        {
            using (new UnitOfWorkScope(false))
            {
                LumenEntities     dbContext = UnitOfWorkScope.currentDbContext;
                List <Fotografia> fotos     = (from f in dbContext.Fotografie.Include("fotografo")
                                               select f).Take(QUANTE).ToList();

                //Carico una stampa Provini
                ParamStampaProvini p = ricavaParamStampaProvini();
                p.numeroColonne  = 5;
                p.numeroRighe    = 5;
                p.macchiaProvini = false;

                _impl.aggiungereStampe(fotos, p);

                //Carico una stampa Foto
                ParamStampaFoto p2 = ricavaParamStampaFoto();

                CodaDiStampe c1 = new CodaDiStampe(p2, Costanti.NomeStampantePdf);

                Fotografia foto = (from f in dbContext.Fotografie.Include("fotografo")
                                   select f).Take(QUANTE + 1).ToList().Last();

                c1.EnqueueItem(new LavoroDiStampaFoto(foto, p2));
                c1.Start();

                List <Fotografia> fotos2 = (from f in dbContext.Fotografie.Include("fotografo")
                                            select f).Take(2 * QUANTE + 1).ToList();

                // Carico una stampa Provini
                ParamStampaProvini p3 = ricavaParamStampaProvini();
                p3.numeroColonne  = 3;
                p3.numeroRighe    = 4;
                p3.macchiaProvini = true;

                fotos2.RemoveRange(0, QUANTE + 1);

                _impl.aggiungereStampe(fotos2, p3);

                //Carico una stampa Foto
                ParamStampaFoto p4 = ricavaParamStampaFoto();

                CodaDiStampe c2 = new CodaDiStampe(p4, Costanti.NomeStampantePdf);

                Fotografia foto2 = (from f in dbContext.Fotografie.Include("fotografo")
                                    select f).Take(2 * QUANTE + 2).ToList().Last();

                c2.EnqueueItem(new LavoroDiStampaFoto(foto2, p4));
                c2.Start();
            }

            while (_contaElaborazioniTerminate != 2)
            {
                Thread.Sleep(1000);
            }
            Assert.IsTrue(esitoStampa == EsitoStampa.Ok);
        }
예제 #3
0
        public void outOfMemoryStampaProviniTest()
        {
            FormuleMagiche.sonoNellaUI = false;

            ParamStampaProvini param  = new ParamStampaProvini();
            const int          quante = 30;
            const int          totpag = 1;
            List <Fotografia>  fotos;
            ParamStampaProvini p;

            long memoryPrima = Process.GetCurrentProcess().WorkingSet64;

            using (new UnitOfWorkScope(false)) {
                p = ricavaParamStampaProvini();
                p.numeroColonne  = 6;
                p.numeroRighe    = 5;
                p.macchiaProvini = false;

                LumenEntities dbContext = UnitOfWorkScope.currentDbContext;
                fotos = (from f in dbContext.Fotografie.Include("fotografo")
                         select f).Take(quante).ToList();
            }

            // Stampo un tot. pagine di provini
            for (int pag = 1; pag <= totpag; pag++)
            {
                _impl.aggiungereStampe(fotos, p);
            }

            while (_contaElaborazioniTerminate != totpag)
            {
                Thread.Sleep(10000);

                long memoryDopo = Process.GetCurrentProcess().WorkingSet64;
                long consumata  = (memoryDopo - memoryPrima);

                // Se supero il massimo impostato, probabilmente il gc non sta pulendo.
                if (maxMem > 0 && consumata > maxMem)
                {
                    Assert.Fail("Probabilmente si sta consumando troppa memoria: diff(MB)=" + consumata / 1024);
                }
            }
            Assert.IsTrue(esitoStampa == EsitoStampa.Ok);
        }
예제 #4
0
        public StampaProviniDialogViewModel()
        {
            caricaStampantiAbbinate();

            paramStampaProvini = new ParamStampaProvini();
            paramStampaProvini.PropertyChanged += ParamStampaProvini_PropertyChanged;
            stampaSoloSelezionate = true;

            paramStampaProvini.numeroColonne  = Configurazione.UserConfigLumen.numColoneProvini;
            paramStampaProvini.numeroRighe    = Configurazione.UserConfigLumen.numRigheProvini;
            paramStampaProvini.macchiaProvini = Configurazione.UserConfigLumen.macchiaProvini;

            // carico i margini dai Last Used (se presenti)
            if (Configurazione.LastUsedConfigLumen.marginiStampaProvini != null)
            {
                paramStampaProvini.margini = Configurazione.LastUsedConfigLumen.marginiStampaProvini;
            }
            else
            {
                paramStampaProvini.margini = new Margini(24, 24, 4, 4);                    // valori di default per la prima volta
            }
            ricreaMatriceEsempio();
        }
예제 #5
0
        private ParamStampaProvini ricavaParamStampaProvini()
        {
            ParamStampaProvini p = new ParamStampaProvini();

            // Vediamo se esiste il formato
            // TODO : creare un nuovo attributo che identifica il formato carta come chiave naturale (per esempio A4 oppure 6x8)

            LumenEntities dbContext = UnitOfWorkScope.currentDbContext;

            FormatoCarta formato = Utilita.ottieniFormatoCarta(dbContext, "A5");

            formato.prezzo  = 5;
            p.formatoCarta  = formato;
            p.intestazione  = "Prova";
            p.nomeStampante = Costanti.NomeStampantePdf;
            p.numeroColonne = 5;
            p.numeroRighe   = 6;

            // Qui non si deve spaccare
            Digiphoto.Lumen.Database.OrmUtil.forseAttacca <FormatoCarta>(ref formato);

            return(p);
        }
예제 #6
0
        public void stampaProviniTest()
        {
            ParamStampaProvini param = new ParamStampaProvini();

            using (new UnitOfWorkScope(true))
            {
                ParamStampaProvini p = ricavaParamStampaProvini();
                p.numeroColonne  = 6;
                p.numeroRighe    = 5;
                p.macchiaProvini = false;

                LumenEntities     dbContext = UnitOfWorkScope.currentDbContext;
                List <Fotografia> fotos     = (from f in dbContext.Fotografie.Include("fotografo")
                                               select f).Take(QUANTE).ToList();

                _impl.aggiungereStampe(fotos, p);

                List <Fotografia> fotos2 = (from f in dbContext.Fotografie.Include("fotografo")
                                            select f).Take(2 * QUANTE + 1).ToList();

                // Carico una stampa Provini
                ParamStampaProvini p1 = ricavaParamStampaProvini();
                p1.numeroColonne  = 3;
                p1.numeroRighe    = 4;
                p1.macchiaProvini = true;

                fotos2.RemoveRange(0, QUANTE + 1);

                _impl.aggiungereStampe(fotos2, p1);
            }

            while (_contaElaborazioniTerminate != 2)
            {
                Thread.Sleep(1000);
            }
            Assert.IsTrue(esitoStampa == EsitoStampa.Ok);
        }