Пример #1
0
        public bool  modificaMetadatiFotografie(IEnumerable <Fotografia> fotografie, MetadatiFoto metadati)
        {
            bool esito = false;

            try
            {
                // riattacco l'entità che non si sa mai
                if (metadati.evento != null)
                {
                    try {
                        Evento e = metadati.evento;
                        OrmUtil.forseAttacca <Evento>(ref e);
                    } catch (Exception ee) {
                        _giornale.Debug("Potenziale errore", ee);
                    }
                }

                foreach (Fotografia f in fotografie)
                {
                    Fotografia fotografia = f;
                    try {
                        OrmUtil.forseAttacca(ref fotografia);
                    } catch (Exception ee) {
                        _giornale.Debug("Potenziale errore", ee);
                        fotografia = UnitOfWorkScope.currentDbContext.Fotografie.Single(f2 => f2.id == f.id);
                    }

#if DEBUG
                    String didascaliaNew = null;
                    if (metadati.usoDidascalia)
                    {
                        if (!String.IsNullOrWhiteSpace(metadati.didascalia))
                        {
                            didascaliaNew = metadati.didascalia.TrimEnd().ToUpper();
                        }
                    }

                    string strDidascaliaOld    = fotografia.didascalia;
                    string strFaseDelGiornoOld = fotografia.faseDelGiorno == null ? "empty" : FaseDelGiornoUtil.valoreToString(fotografia.faseDelGiorno);
                    string strEventoOld        = fotografia.evento == null ? "empty" : fotografia.evento.descrizione;

                    string strFaseDelGiornoNew = metadati.faseDelGiorno == null ? "empty" : metadati.faseDelGiorno.ToString();
                    string strEventoNew        = metadati.evento == null ? "empty" : metadati.evento.descrizione;

                    String msg = String.Format("Modificati metadati: {0} da: dida:{1} faseGG:{2} evento:{3} in dida:{4} faseGG:{5} evento:{6}",
                                               fotografia.ToString(),
                                               strDidascaliaOld,
                                               strFaseDelGiornoOld,
                                               strEventoOld,
                                               didascaliaNew,
                                               strFaseDelGiornoNew,
                                               strEventoNew
                                               );
#endif

                    modificaMetadatiFotografie(fotografia, metadati);

#if DEBUG
                    _giornale.Debug(msg);
#endif
                }

                UnitOfWorkScope.currentDbContext.SaveChanges();
                _giornale.Debug("Modifica metadati salvataggio eseguito. Ora committo la transazione");

                _giornale.Info("Commit metadati andato a buon fine");

                esito = true;
            } catch (Exception eee) {
                _giornale.Error("Modifica metadati", eee);
                esito = false;
                _giornale.Error("Impossibile modificare metadati", eee);
            }

            return(esito);
        }