/// <summary> /// Eliminazione definitiva delle foto selezionate. /// </summary> /// <param name="param">Se param è una stringa e contiene il valore "SEL" allora elimino le foto selezionate.</param> void eliminareFoto() { IEnumerable <Fotografia> itemsToDelete = getListaFotoTarget(); string msg = "Sei sicuro di voler eliminare definitivamente\nle " + itemsToDelete.Count() + " fotografie selezionate?\nL'operazione non è recuperabile !"; bool procediPure = chiedereConfermaPerProseguire(msg, "Eliminazione definitiva foto"); if (!procediPure) { return; } if (itemsToDelete.Count() > 5) { procediPure = chiedereConfermaPerProseguire(msg, "Eliminazione definitiva foto, 2^ conferma"); } if (!procediPure) { return; } // chiamo il servizio che mi elimina fisicamente i files immagini, e le Fotografie dal db. int quanti = 0; using (IEliminaFotoVecchieSrv srv = LumenApplication.Instance.creaServizio <IEliminaFotoVecchieSrv>()) { quanti = srv.elimina(itemsToDelete); } }
public void eliminaUnaFotoTest() { using (new UnitOfWorkScope()) { UnitOfWorkScope.currentObjectContext.Connection.Open(); LumenEntities entities = UnitOfWorkScope.currentDbContext; // ----- Ora provo in eSql string esql = @"SELECT f.id FROM LumenEntities.Fotografie as f left join LumenEntities.RigheCarrelli as rc on rc.fotografia = f"; DbCommand comando = UnitOfWorkScope.currentObjectContext.Connection.CreateCommand(); comando.CommandText = esql; // Devo scegliere una foto che non sia dentro un carrello, altrimenti mi si spacca Guid idFoto = Guid.Empty; using (DbDataReader rdr = comando.ExecuteReader(CommandBehavior.SequentialAccess)) { if (rdr.Read()) { var oo = rdr.GetValue(0); idFoto = (Guid)oo; } if (idFoto == Guid.Empty) { return; } Fotografia fDacanc = entities.Fotografie.Single(f => f.id == idFoto); string nomeFileOrig = PathUtil.nomeCompletoOrig(fDacanc); Object[] parametri = new Object[] { fDacanc.id }; Assert.IsTrue(File.Exists(nomeFileOrig)); ObjectResult <int> test1 = ((IObjectContextAdapter)entities).ObjectContext.ExecuteStoreQuery <int>(@"select count(*) from Fotografie where id = {0}", parametri); Assert.IsTrue(test1.ElementAt(0) == 1); using (IEliminaFotoVecchieSrv srv = LumenApplication.Instance.creaServizio <IEliminaFotoVecchieSrv>()) { Fotografia [] listaDacanc = { fDacanc }; int quante = srv.elimina(listaDacanc); Assert.IsTrue(quante == 1); } Assert.IsFalse(File.Exists(nomeFileOrig)); ObjectResult <int> test2 = ((IObjectContextAdapter)entities).ObjectContext.ExecuteStoreQuery <int>(@"select count(*) from Fotografie where id = {0}", parametri); Assert.IsTrue(test2.ElementAt(0) == 0); // // Siccome non mi fido, provo a fare una query per vedere che la foto in questione sia davvero sparita. } } }
public void clean() { IList <String> listPathFoto = eliminaFotoVecchieSrv.getListaCartelleDaEliminare(); if (listPathFoto.Count == 0) { dialogProvider.ShowMessage("Non vi sono rullini da eliminare", "Avviso"); return; } foreach (String path in listPathFoto) { MessageBoxResult confermato = chiediConfermaEliminazionePath(path); if (confermato == MessageBoxResult.Cancel) { break; } else if (confermato == MessageBoxResult.Yes) { eliminaFotoVecchieSrv.elimina(path); } } }