コード例 #1
0
ファイル: SelfService.cs プロジェクト: digiPHOTO-it/lumen
        public List <FotografiaDto> getListaFotografieDelFotografo(RicercaFotoParam ricercaFotoParam)
        {
            List <FotografiaDto> listaDto = new List <FotografiaDto>();

            _giornale.Debug("param = " + ricercaFotoParam.ToString());

            using (new UnitOfWorkScope()) {
                // uso apposito servizio di ricerca foto
                IRicercatoreSrv ricercaSrv = LumenApplication.Instance.getServizioAvviato <IRicercatoreSrv>();

                // preparo parametri
                ParamCercaFoto param = new ParamCercaFoto();

                Fotografo fotografo = null;
                if (ricercaFotoParam.fotografoId != null)
                {
                    fotografo       = UnitOfWorkScope.currentDbContext.Fotografi.Single(f => f.id == ricercaFotoParam.fotografoId);
                    param.fotografi = new Fotografo[] { fotografo };
                }
                param.evitareJoinEvento = true;
                param.paginazione       = new Paginazione {
                    skip = ricercaFotoParam.skip, take = ricercaFotoParam.take
                };
                param.idratareImmagini = false;

                // Se viene indicata una giornata nei parametri, prendo quella.
                // Altrimenti imposto fisso la giornata corrente
                DateTime giornata = ricercaFotoParam.giorno > DateTime.MinValue ? ricercaFotoParam.giorno : StartupUtil.calcolaGiornataLavorativa();
                param.giornataIniz = giornata;
                param.giornataFine = giornata;

                // La fase del giorno è un parametro opzionale
                if (ricercaFotoParam.faseDelGiorno != null)
                {
                    FaseDelGiorno faseDelGiorno;
                    if (Enum.TryParse <FaseDelGiorno>(ricercaFotoParam.faseDelGiorno, out faseDelGiorno))
                    {
                        param.setFaseGiorno(faseDelGiorno, true);
                    }
                }

                param.ordinamento = Ordinamento.Asc;

                _giornale.Debug("ricerca con skip = " + ricercaFotoParam.skip);
                var fotografie = ricercaSrv.cerca(param);
                foreach (var foto in fotografie)
                {
                    FotografiaDto dto = new FotografiaDto();
                    dto.etichetta = foto.etichetta;
                    dto.id        = foto.id;

                    // da vedere se conviene
                    // dto.imgProvino = ....

                    listaDto.Add(dto);
                }
            }

            return(listaDto);
        }
コード例 #2
0
        void caricaProssimaPagina()
        {
            ++pagina;

            // Prendo un elemento in piu per capire se sono alla fine della lista.
            RicercaFotoParam param = new RicercaFotoParam {
                fotografoId = userConfig.idFotografo,
                giorno      = DateTime.Today,
                skip        = ((pagina - 1) * totFrame),
                take        = totFrame + 1
            };


            var listaAttesaTmp = SSClientSingleton.Instance.getListaFotografieDelFotografo(param);

            int quanti = Math.Min(totFrame, listaAttesaTmp.Length);

            listaAttesa = new FotografiaDto[quanti];

            Array.Copy(listaAttesaTmp, listaAttesa, quanti);

            arrivatoInFondo = (listaAttesaTmp.Length < totFrame);

            puntatore = 0;
        }
コード例 #3
0
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            ImageSource imageSource = null;

            if (value == null)
            {
                return(imageSource);
            }

            if (value.GetType() == typeof(FotografiaDto))
            {
                /*
                 * SelfServiceClient ssClient = new SelfServiceClient();
                 * ssClient.Open();
                 */

                FotografiaDto fotografia = (FotografiaDto)value;

                imageSource = FotoSrv.Instance.loadPhoto("Provino", fotografia.id);
            }

            if (value.GetType() == typeof(byte[]))
            {
                imageSource = LoadImage((byte[])value);
            }

            return(imageSource);
        }
コード例 #4
0
ファイル: SelfService.cs プロジェクト: digiPHOTO-it/lumen
        public List <FotografiaDto> getListaFotografie(Guid carrelloId)
        {
            _giornale.Debug("inizio metodo getListaFotografie( " + carrelloId + " )");

            List <FotografiaDto> listaFotografie = new List <FotografiaDto>();

            using (new UnitOfWorkScope()) {
                _giornale.Debug("apertura unit-ok-work ok");

                // ricavo il servizio dei carrelli e imposto quello corrente
                ICarrelloExplorerSrv srv = LumenApplication.Instance.getServizioAvviato <ICarrelloExplorerSrv>();
                _giornale.Debug("ottenuto servizio ICarrelloExplorerSrv");

                try {
                    // Se non ho il carrello nella cache, provo a caricarlo per ID (soltanto lui)
                    if (srv.carrelli == null || srv.carrelli.Any(c => c.id == carrelloId) == false)
                    {
                        srv.cercaCarrelli(new ParamCercaCarrello {
                            carrelloId = carrelloId, soloSelfService = true
                        });
                    }

                    // Se ancora non l'ho trovato significa che non c'è oppure non è destinato al self service.
                    if (srv.carrelli == null || srv.carrelli.Any(c => c.id == carrelloId) == false)
                    {
                        return(listaFotografie);
                    }

                    srv.setCarrelloCorrente(carrelloId);

                    _giornale.Debug("settatto carrello corrente: " + carrelloId + " tot. righe = " + srv.carrelloCorrente.righeCarrello.Count);
                    if (srv.carrelloCorrente != null)
                    {
                        foreach (RigaCarrello riga in srv.carrelloCorrente.righeCarrello)
                        {
                            if (riga.fotografia_id != null && riga.isTipoMasterizzata)
                            {
                                FotografiaDto dto = new FotografiaDto();
                                dto.id        = riga.fotografia.id;
                                dto.etichetta = riga.fotografia.etichetta;
                                dto.miPiace   = riga.fotografia.miPiace;                               // TODO aggiungere nuovo flag su Fotografia

                                listaFotografie.Add(dto);
                            }
                        }
                    }
                } catch (Exception ee) {
                    _giornale.Error(ee);
                    throw ee;
                }
            }

            _giornale.Debug("ritorno lista di " + listaFotografie.Count + " + righe");

            return(listaFotografie);
        }
コード例 #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="values">Un array di oggetti cosi: composto:</br>
        ///   indice = 0 : un oggetto Fotografia
        ///   indice = 1 : un viewModel (o una qualsiasi classe) che implementi l'interfaccia IContenitoreGriglia
        /// </param>
        /// <param name="targetType"></param>
        /// <param name="parameter"></param>
        /// <param name="culture"></param>
        /// <returns>una ImageSource</returns>
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            ImageSource imageSource = null;


            try {
                FotografiaDto            fotografiaDto = (FotografiaDto)values[0];
                SlideShowWindowViewModel vm            = (SlideShowWindowViewModel)values[1];

                imageSource = vm.GetBitmap(fotografiaDto);
            } catch (Exception ee) {
                _giornale.Error("estrazione immagine fallita", ee);
                // Alcune immagini possono essere rovinate o mancanti. Devo proseguire.
                imageSource = null;
            }

            return(imageSource);
        }
コード例 #6
0
        internal BitmapSource GetBitmap(FotografiaDto fotografiaDto)
        {
            byte [] bytes = SSClientSingleton.Instance.getImage(fotografiaDto.id);

            MemoryStream memoryStream = new MemoryStream(bytes);
            BitmapImage  bi           = new BitmapImage();

            memoryStream.Position = 0;
            bi.BeginInit();
            bi.StreamSource = memoryStream;
            bi.EndInit();
            BitmapSource bitmapSource = bi;

            // Se non frizzo, non riesco a passare queste bitmap da un thread all'altro.
            bitmapSource.Freeze();

            return(bitmapSource);
        }
コード例 #7
0
        internal FotografiaDto[] getListaFotografieDelFotografo(RicercaFotoParam param)
        {
            {
                FotografiaDto[] result = new FotografiaDto[0];
                Open();

                try {
                    result = ssClient.getListaFotografieDelFotografo(param);
                } catch (Exception) {
                    connectionRestart();
                    if (isConnectionOK)
                    {
                        return(ssClient.getListaFotografieDelFotografo(param));
                    }
                }
                return(result);
            }
        }
コード例 #8
0
 internal FotografiaDto[] getListaFotografie(Guid id)
 {
     FotografiaDto[] result = new FotografiaDto[0];
     Open();
     try
     {
         result = ssClient.getListaFotografie(id);
     }
     catch (Exception)
     {
         connectionRestart();
         if (isConnectionOK)
         {
             result = ssClient.getListaFotografie(id);
         }
     }
     return(result);
 }