예제 #1
0
        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());
            }
        }
예제 #2
0
 /// <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());
     }
 }
예제 #3
0
        /// <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();
        }