public void EliminaRecensione(Recensione recensione)
 {
     try
     {
         ISession sessione = _segnalazioniController.OpenConnection();
         sessione.BeginTransaction();
         int id = recensione.Id;
         List <Recensione> res      = null;
         ICriteria         criteria = sessione.CreateCriteria <Recensione>();
         res = (List <Recensione>)criteria.Add(Expression.Like("Id", id)).List <Recensione>();
         if (res.Count == 1)
         {
             res[0].Punteggio = -1;
             res[0].Username  = "";
             res[0].Commento  = "";
             res[0].Libro     = null;
             sessione.Update(res[0]);
         }
         sessione.Transaction.Commit();
         sessione.Flush();
         sessione.Transaction.Dispose();
     }
     catch (Exception e)
     {
         throw new FaultException <BookFault>(new BookFault(e.Message));
     }
 }
コード例 #2
0
        public List <Recensione> GetRecensioni(int idcorso, int idutente)
        {
            SqlConnection conn = new SqlConnection(conn_string);

            conn.Open();

            SqlCommand cmd1 = new SqlCommand("GetRecensioniById", conn);

            cmd1.CommandType = CommandType.StoredProcedure;
            cmd1.Parameters.AddWithValue("@id", idcorso);
            cmd1.Parameters.AddWithValue("@uid", idutente);

            DataTable      dt1 = new DataTable();
            SqlDataAdapter da1 = new SqlDataAdapter(cmd1);

            da1.Fill(dt1);

            List <Recensione> rec = new List <Recensione>();

            foreach (DataRow dr in dt1.Rows)
            {
                Recensione recensione = new Recensione();
                recensione.NomeUtente  = (string)dr["Nome"];
                recensione.Valutazione = (int)dr["Voto"];
                recensione.Descrizione = (string)dr["Descrizione"];
                recensione.Data        = (DateTime)dr["Data"];
                rec.Add(recensione);
            }

            conn.Close();
            return(rec);
        }
コード例 #3
0
        public Recensione GetRecensioneUtente(int idcorso, int idutente)
        {
            SqlConnection conn = new SqlConnection(conn_string);

            conn.Open();

            SqlCommand cmd1 = new SqlCommand("GetRecensioneUtente", conn);

            cmd1.CommandType = CommandType.StoredProcedure;
            cmd1.Parameters.AddWithValue("@idc", idcorso);
            cmd1.Parameters.AddWithValue("@idu", idutente);

            DataTable      dt1 = new DataTable();
            SqlDataAdapter da1 = new SqlDataAdapter(cmd1);

            da1.Fill(dt1);
            conn.Close();
            Recensione recensione = null;

            if (dt1.Rows.Count > 0)
            {
                DataRow dr = dt1.Rows[0];
                recensione = new Recensione
                {
                    ID          = (int)dr["IDValutazione"],
                    Data        = (DateTime)dr["Data"],
                    Descrizione = (string)dr["Descrizione"],
                    Valutazione = (int)dr["Voto"],
                    IDCorso     = (int)dr["FK_IDCorso"]
                };
            }

            return(recensione);
        }
コード例 #4
0
        public SegnalazioneRecensione GetSegnalazioneRecensione()
        {
            SegnalazioneRecensione segn = null;

            try
            {
                if (File.Exists(_fileCodaSegnalazioneRecensione))
                {
                    StreamReader  streamReader = new StreamReader(_fileCodaSegnalazioneRecensione);
                    List <string> lines        = new List <string>();
                    while (streamReader.Peek() >= 0)
                    {
                        lines.Add(streamReader.ReadLine());
                    }
                    streamReader.Close();
                    if (lines.Count > 0)
                    {
                        string firstLine = lines[0];
                        lines.Remove(firstLine);
                        StreamWriter writer = new StreamWriter(_fileCodaSegnalazioneRecensione);
                        foreach (string l in lines)
                        {
                            writer.WriteLine(l);
                        }
                        writer.Close();
                        string[] elements = firstLine.Split('/');
                        if (elements.Length == 2)
                        {
                            Recensione recensione = _segnalazioneRecensioneController.GetRecensione(Int32.Parse(elements[0]));
                            if (recensione == null)
                            {
                                throw new Exception("impossibile trovare la recensione");
                            }
                            segn = new SegnalazioneRecensione(elements[1], recensione);
                            ISession sessione = OpenConnection();
                            sessione.BeginTransaction();
                            List <SegnalazioneRecensione> segnReceived = null;
                            ICriteria criteria = sessione.CreateCriteria <SegnalazioneRecensione>();
                            segnReceived = (List <SegnalazioneRecensione>)criteria.Add(Expression.Like("Recensione", recensione)).List <SegnalazioneRecensione>();
                            foreach (SegnalazioneRecensione s in segnReceived)
                            {
                                sessione.Delete(s);
                            }
                            sessione.Transaction.Commit();
                            sessione.Transaction.Dispose();
                        }
                        else
                        {
                            throw new Exception("segnalazione scorretta");
                        }
                    }
                }
                return(segn);
            }
            catch (Exception e)
            {
                throw new FaultException <BookFault>(new BookFault("problemi remoti"));
            }
        }
コード例 #5
0
 public void RimuoviRecensione(Recensione recensione, string username)
 {
     if (_recensioniSalvateController == null)
     {
         _recensioniSalvateController = new RecensioniSalvateController(_gestisciUtente);
     }
     _recensioniSalvateController.RimuoviRecensione(recensione, username);
 }
コード例 #6
0
 public void EliminaRecensione(Recensione recensione)
 {
     if (_segnalazioneRecensione == null)
     {
         _segnalazioneRecensione = new SegnalazioneRecensioneController(_segnalazioni);
     }
     _segnalazioneRecensione.EliminaRecensione(recensione);
 }
コード例 #7
0
 public void ModificaRecensione(Recensione recensione)
 {
     if (_recensioneController == null)
     {
         _recensioneController = new RecensioneController(_gestisciUtente);
     }
     _recensioneController.ModificaRecensione(recensione);
 }
コード例 #8
0
        public void CommentoText_StringaVuota_RitornaStringaIntera()
        {
            Recensione recensione = new Recensione()
            {
                Commento = ""
            };
            string risultato = recensione.CommentoText;

            Assert.AreEqual(risultato, "Commento: ");
        }
コード例 #9
0
        public void CommentoText_LunghezzaMinoreUguale40_RitornaStringaIntera()
        {
            Recensione recensione = new Recensione()
            {
                Commento = "Stringa corta"
            };
            string risultato = recensione.CommentoText;

            Assert.AreEqual(risultato, "Commento: Stringa corta");
        }
コード例 #10
0
        public void IdentificativoUtente_NonVisibileConNicknameConUtenteNullo_RitornaUtenteVuoto()
        {
            Recensione recensione = new Recensione()
            {
                VisibileConNickname = false
            };
            string risultato = recensione.IdentificativoUtente;

            Assert.AreEqual(risultato, "Utente: ");
        }
コード例 #11
0
 public IActionResult Create(Recensione rev)
 {
     if (ModelState.IsValid)
     {
         _context.Add(rev);
         _context.SaveChanges();
         return(RedirectToAction("Show"));
     }
     return(View("Index"));
 }
コード例 #12
0
        public void IdentificativoUtente_VisibileConNickname_RitornaNickname()
        {
            Recensione recensione = new Recensione()
            {
                VisibileConNickname = true,
                NomeUtente          = "nomeUtente",
                NicknameUtente      = "nicknameUtente"
            };
            string risultato = recensione.IdentificativoUtente;

            Assert.AreEqual(risultato, "Utente: nicknameUtente");
        }
コード例 #13
0
        public void IdentificativoUtente_NonVisibileConNicknameConNomeVuoto_RitornaNomeVuoto()
        {
            Recensione recensione = new Recensione()
            {
                VisibileConNickname = false,
                NomeUtente          = "",
                NicknameUtente      = "nicknameUtente"
            };
            string risultato = recensione.IdentificativoUtente;

            Assert.AreEqual(risultato, "Utente: ");
        }
コード例 #14
0
        public List <Recensione> GetRecensioniSalvate(string username)
        {
            List <Recensione> recensioni = null;

            try
            {
                if (username == null)
                {
                    throw new ArgumentException("Username nullo");
                }
                ISession sessione = GetConnection();
                sessione.BeginTransaction();
                RecensioniPreferite recensioniRicevute = null;
                ICriteria           criteria           = sessione.CreateCriteria <RecensioniPreferite>();
                recensioniRicevute = (RecensioniPreferite)criteria.Add(Expression.Like("Username", username)).UniqueResult();
                sessione.Transaction.Commit();
                sessione.Transaction.Dispose();
                recensioni = new List <Recensione>();
                foreach (Recensione r in recensioniRicevute.RecensioniSalvate)
                {
                    if (r.Punteggio != -1)
                    {
                        Libro temp = new Libro
                        {
                            Anno     = r.Libro.Anno,
                            Autore   = r.Libro.Autore,
                            FilePath = r.Libro.FilePath,
                            Gen      = r.Libro.Gen,
                            Titolo   = r.Libro.Titolo
                        };
                        Recensione recTemp = new Recensione()
                        {
                            Punteggio = r.Punteggio,
                            Libro     = temp,
                            Commento  = r.Commento,
                            Username  = r.Username,
                            Id        = r.Id
                        };
                        recensioni.Add(recTemp);
                    }
                }

                RegisterOperazione("get recensioni salvate", username);
                return(recensioni);
            }
            catch (Exception e)
            {
                throw new FaultException <BookFault>(new BookFault(e.Message));
            }
        }
コード例 #15
0
        public RecensioneView(string addr, string username, Recensione r)
        {
            InitializeComponent();

            _addr     = addr;
            _username = username;
            _libro    = r.Libro;

            _schedaRecensione = new SchedaRecensione(addr, username);
            _r = r;

            textBoxLibro.Text     = r.Libro.Titolo;
            textBoxPunteggio.Text = r.Punteggio.ToString();
            textBoxCommento.Text  = r.Commento;
        }
コード例 #16
0
        public RecensioneSegnalataView(string addr, Recensione review)
        {
            InitializeComponent();

            _addr   = addr;
            _review = review;

            _gestioneSegnalazioneRecensione = new GestioneSegnalazioneRecensione(_addr);

            textBoxIDRecensione.Text = _review.Id.ToString();
            textBoxLibro.Text        = _review.Libro.Titolo + ", " + _review.Libro.Autore +
                                       " (" + _review.Libro.Anno + ") " + _review.Libro.Gen;
            textBoxPunteggio.Text = _review.Punteggio.ToString();
            textBoxCommento.Text  = _review.Commento;
        }
コード例 #17
0
        public ModificaRecensione(string addr, string username, Recensione r, LeMieRecensioni leMieRecensioni)
        {
            InitializeComponent();

            _addr     = addr;
            _username = username;

            _r = r;

            textBoxPunteggio.Text = _r.Punteggio.ToString();
            textBoxCommento.Text  = _r.Commento;


            _leMieRecensioni = leMieRecensioni;
        }
コード例 #18
0
        public void CommentoText_LunghezzaMaggiore40_RitornaSottoStringa()
        {
            Recensione    recensione = new Recensione();
            StringBuilder stringa    = new StringBuilder();

            for (int i = 0; i != 50; ++i)
            {
                stringa.Append("s");
            }
            recensione.Commento = stringa.ToString();
            string risultato          = recensione.CommentoText;
            string risultatoAspettato = $"Commento: {stringa.ToString().Substring(0, 40)}...";

            Assert.AreEqual(risultato, risultatoAspettato);
        }
コード例 #19
0
        private void dataGridViewRecensioni_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex != -1)
            {
                if (dataGridViewRecensioni.CurrentCell != null && dataGridViewRecensioni.CurrentCell.Value != null)
                {
                    int        punteggio = (int)dataGridViewRecensioni.Rows[e.RowIndex].Cells[0].Value;
                    string     commento  = (string)dataGridViewRecensioni.Rows[e.RowIndex].Cells[1].Value;
                    Libro      libro     = (Libro)dataGridViewRecensioni.Rows[e.RowIndex].Cells[2].Value;
                    Recensione r         = (Recensione)dataGridViewRecensioni.Rows[e.RowIndex].Cells[3].Value;

                    new RecensioneView(_addr, _username, r).Show();
                    this.Hide();
                }
            }
        }
コード例 #20
0
        public RecensioneDaEliminareView(string addr, Recensione rec, Dictionary <DateTime, int> dt)
        {
            InitializeComponent();

            _addr   = addr;
            _review = rec;
            _dt     = dt;

            textBoxIDRecensione.Text = _review.Id.ToString();
            textBoxLibro.Text        = _review.Libro.Titolo + ", " + _review.Libro.Autore +
                                       " (" + _review.Libro.Anno + ") " + _review.Libro.Gen;
            textBoxPunteggio.Text = _review.Punteggio.ToString();
            textBoxCommento.Text  = _review.Commento;

            _segnalazioneRecensione = new GestioneSegnalazioneRecensione(_addr);
        }
コード例 #21
0
 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));
     }
 }
コード例 #22
0
        public void CommentoText_StringaLunghezza39_RitornaStringaIntera()
        {
            StringBuilder stringa = new StringBuilder();

            for (int i = 0; i != 39; ++i)
            {
                stringa.Append("s");
            }
            Recensione recensione = new Recensione()
            {
                Commento = stringa.ToString()
            };
            string risultato          = recensione.CommentoText;
            string risultatoAspettato = $"Commento: {stringa}";

            Assert.AreEqual(risultato, risultatoAspettato);
        }
コード例 #23
0
        private void dataGridViewLeMieRecensioni_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dataGridViewLeMieRecensioni.CurrentCell.ColumnIndex.Equals(0) && e.RowIndex != -1)
            {
                if (dataGridViewLeMieRecensioni.CurrentCell != null && dataGridViewLeMieRecensioni.CurrentCell.Value != null)
                {
                    Recensione r = (Recensione)dataGridViewLeMieRecensioni.Rows[e.RowIndex].Cells[4].Value;

                    new ModificaRecensione(_addr, _username, r, _leMieRecensioni).Show();
                    this.Hide();
                }
            }

            else
            {
            }
        }
コード例 #24
0
        public static async void Save(Recensione recensione, string uri)
        {
            var json    = JsonConvert.SerializeObject(recensione);
            var content = new StringContent(json, Encoding.UTF8, "application/json");

            Console.WriteLine(json);
            HttpResponseMessage response = null;

            try
            {
                response = await _client.PostAsync(uri, content);
            }
            catch
            {
                Console.WriteLine("errore");
            }
        }
コード例 #25
0
        public List <Recensione> CercaRecensioniLibro(Libro libro)
        {
            List <Recensione> recensioni = null;

            try
            {
                if (libro == null)
                {
                    throw new ArgumentException("Libro non esistente");
                }
                ISession sessione = GetConnection();
                sessione.BeginTransaction();
                List <Recensione> recensioniRicevute = null;
                ICriteria         criteria           = sessione.CreateCriteria <Recensione>();
                recensioniRicevute = (List <Recensione>)criteria.Add(Expression.Like("Libro", libro)).List <Recensione>();
                sessione.Transaction.Commit();
                sessione.Transaction.Dispose();
                recensioni = new List <Recensione>();
                foreach (Recensione r in recensioniRicevute)
                {
                    Libro temp = new Libro
                    {
                        Anno     = r.Libro.Anno,
                        Autore   = r.Libro.Autore,
                        FilePath = r.Libro.FilePath,
                        Gen      = r.Libro.Gen,
                        Titolo   = r.Libro.Titolo
                    };
                    Recensione recTemp = new Recensione()
                    {
                        Punteggio = r.Punteggio,
                        Libro     = temp,
                        Commento  = r.Commento,
                        Username  = r.Username,
                        Id        = r.Id
                    };
                    recensioni.Add(recTemp);
                }
                return(recensioni);
            }
            catch (Exception e)
            {
                throw new FaultException <BookFault>(new BookFault(e.Message));
            }
        }
コード例 #26
0
 public void PubblicaRecensione(int?punteggio, string commento, Libro libro, string username)
 {
     try
     {
         ISession sessione = _gestisciUtente.OpenConnection();
         sessione.BeginTransaction();
         Recensione rec = new Recensione(punteggio, libro, commento, username);
         rec.Username = username;
         sessione.Save(rec);
         sessione.Transaction.Commit();
         sessione.Transaction.Dispose();
         _gestisciUtente.RegisterOperazione("pubblicazione recensione personale", username);
     }
     catch (Exception e)
     {
         throw new FaultException <BookFault>(new BookFault(e.Message), new FaultReason(e.Message));
     }
 }
コード例 #27
0
        private void dataGridViewRecensioniPreferite_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dataGridViewRecensioniPreferite.CurrentCell.ColumnIndex.Equals(0) && e.RowIndex != -1)
            {
                if (dataGridViewRecensioniPreferite.CurrentCell != null && dataGridViewRecensioniPreferite.CurrentCell.Value != null)
                {
                    Recensione r = (Recensione)dataGridViewRecensioniPreferite.Rows[e.RowIndex].Cells[4].Value;
                    _recensioniPreferite.RimuoviRecensione(r);

                    new LaMiaLibreriaView(_addr, _username).Show();
                    this.Hide();
                }
            }

            else
            {
            }
        }
コード例 #28
0
        private void buttonProssimaRecensione_Click(object sender, EventArgs e)
        {
            if (_dt.Count > 0)
            {
                var      first = _dt.First();
                DateTime key   = first.Key;
                int      id    = _dt[key];
                _dt.Remove(key);
                Recensione r = _segnalazioneRecensione.GetRecensione(id);

                new RecensioneDaEliminareView(_addr, r, _dt).Show();
                this.Hide();
            }
            else
            {
                System.Windows.Forms.MessageBox.Show("Non ci sono recensioni scadute");
            }
        }
コード例 #29
0
 public void RimuoviRecensione(Recensione r)
 {
     try
     {
         BasicHttpBinding myBinding = new BasicHttpBinding();
         myBinding.MaxReceivedMessageSize = 2147483647;
         myBinding.MaxBufferSize          = 2147483647;
         EndpointAddress          myEndpoint       = new EndpointAddress(_addr);
         ChannelFactory <IUtente> myChannelFactory = new ChannelFactory <IUtente>(myBinding, myEndpoint);
         // Create a channel.
         IUtente client = myChannelFactory.CreateChannel();
         client.RimuoviRecensione(r, _username);
         ((IClientChannel)client).Close();
     }
     catch (Exception)
     {
         //doNothing
     }
 }
コード例 #30
0
 public void EliminaRecensione(Recensione recensione)
 {
     try
     {
         BasicHttpBinding myBinding  = new BasicHttpBinding();
         EndpointAddress  myEndpoint = new EndpointAddress(_addr);
         ChannelFactory <IAmministratore> myChannelFactory = new ChannelFactory <IAmministratore>(myBinding, myEndpoint);
         // Create a channel.
         IAmministratore clientAmministratore = myChannelFactory.CreateChannel();
         clientAmministratore.EliminaRecensione(recensione);
         ((IClientChannel)clientAmministratore).Close();
         myChannelFactory.Close();
     }
     catch (Exception e)
     {
         //System.Windows.Forms.MessageBox.Show(e.Message);
         //doNothing
     }
 }