public void RimuoviLista(Lista lista, string username)
 {
     try
     {
         ListePreferite listePrefe = null;
         ISession       sessione   = _gestisciUtente.OpenConnection();
         sessione.BeginTransaction();
         ICriteria criteria = sessione.CreateCriteria <ListePreferite>();
         listePrefe = (ListePreferite)criteria.Add(Expression.Like("Username", username)).UniqueResult();
         List <Lista> listeSalvateNew = new List <Lista>();
         foreach (Lista l in listePrefe.ListeSalvate)
         {
             if (l.Id != lista.Id)
             {
                 listeSalvateNew.Add(l);
             }
         }
         listePrefe.ListeSalvate = listeSalvateNew;
         sessione.Update(listePrefe);
         sessione.Transaction.Commit();
         sessione.Transaction.Dispose();
         _gestisciUtente.RegisterOperazione("rimozione lista personale", username);
     }
     catch (Exception e)
     {
         throw new FaultException <BookFault>(new BookFault(e.Message));
     }
 }
 public void ModificaRecensione(Recensione recensione)
 {
     try
     {
         if (recensione != null)
         {
             ISession sessione = _gestisciUtente.OpenConnection();
             sessione.BeginTransaction();
             if (recensione.Punteggio != -1)
             {
                 int        id       = recensione.Id;
                 Recensione res      = null;
                 ICriteria  criteria = sessione.CreateCriteria <Recensione>();
                 res = (Recensione)criteria.Add(Expression.Like("Id", id)).UniqueResult();
                 if (res != null)
                 {
                     res.Punteggio = recensione.Punteggio;
                     res.Commento  = recensione.Commento;
                     sessione.Update(res);
                 }
                 _gestisciUtente.RegisterOperazione("modifica recensione personale", recensione.Username);
             }
             else
             {
                 int        id       = recensione.Id;
                 Recensione res      = null;
                 ICriteria  criteria = sessione.CreateCriteria <Recensione>();
                 res = (Recensione)criteria.Add(Expression.Like("Id", id)).UniqueResult();
                 if (res != null)
                 {
                     res.Punteggio = -1;
                     res.Username  = "";
                     res.Commento  = "";
                     res.Libro     = null;
                     sessione.Update(res);
                 }
                 _gestisciUtente.RegisterOperazione("cancellazione recensione personale", recensione.Username);
             }
             sessione.Transaction.Commit();
             sessione.Transaction.Dispose();
         }
     }
     catch (Exception e)
     {
         throw new FaultException <BookFault>(new BookFault(e.Message), new FaultReason(e.Message));
     }
 }
 public void CreaListaPersonale(string nome, string genere, string username)
 {
     try
     {
         ISession sessione = _gestisciUtente.OpenConnection();
         sessione.BeginTransaction();
         Lista lista = new Lista(nome, genere, username);
         lista.Username = username;
         sessione.Save(lista);
         sessione.Transaction.Commit();
         sessione.Transaction.Dispose();
         _gestisciUtente.RegisterOperazione("creazione lista personale", username);
     }
     catch (Exception e)
     {
         throw new FaultException <BookFault>(new BookFault(e.Message));
     }
 }
 public void RimuoviRecensione(Recensione recensione, string username)
 {
     try
     {
         RecensioniPreferite recPrefe = null;
         ISession sessione = _gestisciUtente.OpenConnection();
         sessione.BeginTransaction();
         ICriteria criteria = sessione.CreateCriteria<RecensioniPreferite>();
         recPrefe = (RecensioniPreferite)criteria.Add(Expression.Like("Username", username)).UniqueResult();
         List<Recensione> recSalvateNew = new List<Recensione>();
         foreach (Recensione rec in recPrefe.RecensioniSalvate)
             if (rec.Id != recensione.Id)
                 recSalvateNew.Add(rec);
         recPrefe.RecensioniSalvate = recSalvateNew;
         sessione.Update(recPrefe);
         sessione.Transaction.Commit();
         sessione.Transaction.Dispose();
         _gestisciUtente.RegisterOperazione("Rimozione recensione salvata", username);
     }
     catch (Exception e)
     {
         throw new FaultException<BookFault>(new BookFault(e.Message));
     }
 }