public async void ajouteFilm(Film f) { using (SQLiteCommand command = new SQLiteCommand($"INSERT into {TABLE_FILMS} " + $"({FILMS_CHEMIN}, {FILMS_TITRE}, {FILMS_REALISATEUR}, {FILMS_ACTEURS}, {FILMS_GENRES}, {FILMS_NATIONALITE}, {FILMS_RESUME}, {FILMS_DATESORTIE}, {FILMS_ETAT}, {FILMS_TAG}, {FILMS_FLAGS}, {FILMS_IMAGE})" + " VALUES (@chemin, @titre, @realisateur, @acteurs, @genres, @nationalite, @resume, @datesortie, @etat, @tag, @flags, @image)")) { //if ( f.getImage() != null ) // f.imageId = getImageId( f.imageId, f.getImage() ); command.Parameters.AddWithValue("@chemin", f.Chemin); command.Parameters.AddWithValue("@titre", f.Titre); command.Parameters.AddWithValue("@realisateur", f.Realisateur); command.Parameters.AddWithValue("@acteurs", f.Acteurs); command.Parameters.AddWithValue("@genres", f.Genres); command.Parameters.AddWithValue("@nationalite", f.Nationalite); command.Parameters.AddWithValue("@datesortie", f.DateSortie); command.Parameters.AddWithValue("@resume", f.Resume); command.Parameters.AddWithValue("@etat", f.EtatInt); command.Parameters.AddWithValue("@tag", f.Etiquettes); command.Parameters.AddWithValue("@flags", f.Flags); command.Parameters.AddWithValue("@image", BaseFilms.SqlBinaryPeutEtreNull(Images.imageToByteArray(f.Affiche))); executeNonQuery(command); // Obtenir l'id du dernier film ajoute command.CommandText = $"select last_insert_rowid() as {FILMS_ID} from {TABLE_FILMS};"; object o = executeScalar(command); f.Id = Convert.ToInt32(o); sauveAlternatives(f.Id, f.Alternatives()); } }
/// <summary> /// Met a jour les informations d'un film /// </summary> /// <param name="film"></param> public async void update(Film film) { using (SQLiteCommand command = new SQLiteCommand($"UPDATE {TABLE_FILMS} " + $"SET {FILMS_CHEMIN} =@chemin, {FILMS_TITRE} = @titre, {FILMS_REALISATEUR}=@realisateur, {FILMS_ACTEURS}=@acteurs, " + $"{FILMS_GENRES}=@genres, {FILMS_NATIONALITE}=@nationalite, {FILMS_RESUME}=@resume, {FILMS_DATESORTIE}=@datesortie, " + $"{FILMS_ETAT}=@etat, {FILMS_DATEVU}=@datevu, {FILMS_TAG}=@tag, {FILMS_FLAGS}=@flags" + $" WHERE {FILMS_ID} = @id")) { command.Parameters.AddWithValue("@id", film.Id); command.Parameters.AddWithValue("@chemin", film.Chemin); command.Parameters.AddWithValue("@titre", film.Titre); command.Parameters.AddWithValue("@realisateur", film.Realisateur); command.Parameters.AddWithValue("@acteurs", film.Acteurs); command.Parameters.AddWithValue("@genres", film.Genres); command.Parameters.AddWithValue("@nationalite", film.Nationalite); command.Parameters.AddWithValue("@datesortie", film.DateSortie); command.Parameters.AddWithValue("@resume", film.Resume); command.Parameters.AddWithValue("@datevu", film.DateVu.Ticks); command.Parameters.AddWithValue("@tag", film.Etiquettes); command.Parameters.AddWithValue("@image", BaseFilms.SqlBinaryPeutEtreNull(Images.imageToByteArray(film.Affiche))); command.Parameters.AddWithValue("@etat", film.EtatInt); command.Parameters.AddWithValue("@flags", film.Flags); executeNonQuery(command); sauveAlternatives(film.Id, film.Alternatives()); } }
/// <summary> /// Mise a jour du panneau d'informations en fonction du film selectionné /// </summary> /// <param name="film">film</param> async private void updatePanneauInfo(Film film) { if (film == null) { // Pas de film selectionné flowLayoutPanelInfosFilm.Hide(); return; } WriteMessageToConsole($"Film: {film.Titre}, Id={film.Id}"); flowLayoutPanelInfosFilm.Show(); flowLayoutPanelInfosFilm.SuspendLayout(); labelEtat.Text = film.getTextEtat(); afficheInfoLink(null, linkLabelTitre, film.Titre, InternetUtils.urlRecherche(film.Titre)); afficheInfoLink(null, linkLabelChemin, film.Chemin, new ProcessStartInfo(getExplorerPath(), " /select, \"" + film.Chemin + "\"")); afficheInfoLinks(labelKeyRealisateur, linkLabelRealisateur, film.Realisateur); afficheInfoLinks(labelKeyActeurs, linkLabelActeurs, film.Acteurs); afficheInfoLinks(labelKeyGenres, linkLabelGenres, film.Genres); afficheInfo(labelKeyDateSortie, labelDateSortie, film.DateSortie); afficheInfo(labelKeyNationalite, labelNationalite, film.Nationalite); afficheInfoLinks(labelKeyEtiquettes, linkLabelEtiquettes, film.Etiquettes); labelResume.Text = film.Resume; switch (film.Etat) { case Film.ETAT.OK: case Film.ETAT.NOUVEAU: case Film.ETAT.RECHERCHE: flowLayoutPanelPasTrouve.Hide(); break; default: flowLayoutPanelPasTrouve.Show(); textBoxTitrePasTrouve.Text = film.Titre; break; } pictureBoxAffiche.Image = film.Affiche; listViewAlternatives.Items.Clear(); List <InfosFilm> alternatives = film.Alternatives(); if (alternatives?.Count > 0) { WriteMessageToConsole($"Alternatives: {alternatives.Count}"); foreach (InfosFilm i in alternatives) { WriteMessageToConsole($"Alternative: imageId={i._image}, resumé={i._resume}"); } if (tabControlAlternatives.TabPages.IndexOf(tabpageAlternatives) == -1) { tabControlAlternatives.TabPages.Add(tabpageAlternatives); } foreach (InfosFilm a in alternatives) { ListViewItem item = a.getListViewItem(listViewAlternatives); listViewAlternatives.Items.Add(item); } listViewAlternatives.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); buttonSupprimerAlternatives.Show(); } else { tabControlAlternatives.TabPages.Remove(tabpageAlternatives); buttonSupprimerAlternatives.Hide(); } flowLayoutPanelInfosFilm.ResumeLayout(); }