/// <summary>
        /// Metoda tworz¹ca obiekty zdjêc i dodaj¹ca je do kontrolki wyœwietlaj¹cej
        /// </summary>
        /// <param name="Node">wêz³ dla którego tworzymy obiekty zdjêæ</param>
        /// <returns>zwraca tablice obiektów zdjêæ</returns>
        private Zdjecie[] WybierzPlikiZdjec(DirTreeNode Node)
        {
            List <Zdjecie> zdjecia = new List <Zdjecie>();
            List <string>  pliki   = Przefiltruj(Node.Path);

            Zdjecie z;

            if (Node.Text != "Mój Komputer")
            {
                try
                {
                    for (int i = 0; i < pliki.Count; i++)
                    {
                        try
                        {
                            if ((pliki[i].ToLower().LastIndexOf(".jpg") != -1 && pliki[i].ToLower().LastIndexOf(".jpg") == (pliki[i].Length - 4)) || (pliki[i].ToLower().LastIndexOf(".jpeg") != -1 && pliki[i].ToLower().LastIndexOf(".jpeg") == (pliki[i].Length - 5)))
                            {
                                z = new Zdjecie(pliki[i]);
                                z.ZweryfikujZdjecie();
                                zdjecia.Add(z);
                            }
                        }
                        catch (ArgumentException)
                        {
                            MessageBox.Show("Plik: \"" + pliki[i].Substring(pliki[i].LastIndexOf("\\") + 1) + "\" mimo poprawnego rozszezenie nie zawiera zdjêcia", pliki[i], MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message + " - Odmowa dostêpu", Node.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            return(zdjecia.ToArray());
        }
        /// <summary>
        /// Metoda dodaje wpisy do bazy
        /// </summary>
        /// <param name="lista">lista plików o których nale¿y dodaæ wpisy do bazy</param>
        internal void dodaj_kolekcje_do_bazy(List <string> lista)
        {
            StringBuilder sb          = new StringBuilder("Nie uda³o siê dodaæ do kolekcji nastepuj¹cych zdjêæ:\n");
            bool          nieUdaloSie = false;

            foreach (string n in lista)
            {
                try
                {
                    Zdjecie z = new Zdjecie(n);
                    z.ZweryfikujZdjecie();
                    if (z.DodajDoKolekcji() == false)
                    {
                        sb.Append(z.Path + "\n");
                        if (nieUdaloSie == false)
                        {
                            nieUdaloSie = true;
                        }
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                }
            }
            if (nieUdaloSie)
            {
                MessageBox.Show(sb.ToString());
            }
        }
        /// <summary>
        /// Metoda dodaje tagi dla katalogu
        /// </summary>
        private void DodajTagiDlaKatalogu(object sender, EventArgs e)
        {
            ToolStripItem mn = (ToolStripItem)sender;

            List <string>  lista_stringow = Przefiltruj(mn.ToolTipText);
            List <Zdjecie> lista_zdjec    = new List <Zdjecie>();

            foreach (string plik in lista_stringow)
            {
                Zdjecie z = new Zdjecie(plik);
                z.ZweryfikujZdjecie();
                lista_zdjec.Add(z);
            }

            Dodaj_tagi_do_zdjecia dtdz = new Dodaj_tagi_do_zdjecia(lista_zdjec, true);

            dtdz.ZmienionoTagi += new ZmienionoTagiDelegate(this.ZmienionoTagi);
            dtdz.Show();
        }
        /// <summary>
        /// Metoda dodaje katalog do albumów
        /// </summary>
        internal void DodajDoAlbumu(object sender, EventArgs e)
        {
            ToolStripItem mn = (ToolStripItem)sender;

            List <string>  lista_stringow = Przefiltruj(mn.ToolTipText);
            List <Zdjecie> lista_zdjec    = new List <Zdjecie>();

            foreach (string s in lista_stringow)
            {
                Zdjecie z = new Zdjecie(s);
                z.ZweryfikujZdjecie();
                lista_zdjec.Add(z);
            }

            Dodaj_albumy_do_zdjecia dadz = new Dodaj_albumy_do_zdjecia(lista_zdjec, this, mn.ToolTipText);

            dadz.Show();

            //Dodaj_katalog_do_bazy ddk = new Dodaj_katalog_do_bazy(mn.ToolTipText, this);
            //ddk.Show();
        }
Beispiel #5
0
        private void aktualizacjaBazyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Db baza = new Db();

            baza.Polacz();

            try
            {
                DataSet ds;
                string  pelna_sciezka;

                ds = baza.Select("select sciezka,nazwa_pliku from Zdjecie");

                foreach (DataTable t in ds.Tables)
                {
                    foreach (DataRow r in t.Rows)
                    {
                        if (!(r[0] is DBNull))
                        {
                            pelna_sciezka = r[0] + "\\" + r[1];

                            if (System.IO.File.Exists(pelna_sciezka) == true)
                            {
                                Zdjecie z = new Zdjecie(pelna_sciezka);
                                //tutaj musi byc wukorzystana funkcja do zczytania pol i do update bazy
                                z.ZweryfikujZdjecie();
                                if (z.CzyUstawioneId() == true)
                                {
                                    z.AktualizujBaze();
                                }
                            }
                        }
                    }
                }
            }
            catch (SqlException ex)
            {
                MessageBox.Show("blad bazy: " + ex.Message);
            }
        }
        /// <summary>
        /// Metoda usuwa tagi dla katalogu
        /// </summary>
        private void UsunTagiDlaKatalogu(object sender, EventArgs e)
        {
            ToolStripItem mn = (ToolStripItem)sender;

            List <string> lista_stringow = Przefiltruj(mn.ToolTipText);

            foreach (string plik in lista_stringow)
            {
                Zdjecie z = new Zdjecie(plik);
                z.ZweryfikujZdjecie();

                if (z.CzyUstawioneId() == true)
                {
                    z.UsunTagi();
                }
            }

            if (ZmienionoTagi != null)
            {
                ZmienionoTagi();
            }
        }
        private void aktualizacjaBazyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Db baza = new Db();

            baza.Polacz();

            try
            {
                DataSet ds;
                string pelna_sciezka;

                ds = baza.Select("select sciezka,nazwa_pliku from Zdjecie");

                foreach (DataTable t in ds.Tables)
                {
                    foreach (DataRow r in t.Rows)
                    {
                        if (!(r[0] is DBNull))
                        {
                            pelna_sciezka = r[0] + "\\" + r[1];

                            if (System.IO.File.Exists(pelna_sciezka) == true)
                            {
                                Zdjecie z = new Zdjecie(pelna_sciezka);
                                //tutaj musi byc wukorzystana funkcja do zczytania pol i do update bazy
                                z.ZweryfikujZdjecie();
                                if (z.CzyUstawioneId() == true)
                                {
                                    z.AktualizujBaze();
                                }
                            }
                        }
                    }
                }
            }
            catch (SqlException ex)
            {
                MessageBox.Show("blad bazy: " + ex.Message);
            }
        }
        /// <summary>
        /// Metoda tworz�ca obiekty zdj�c i dodaj�ca je do kontrolki wy�wietlaj�cej
        /// </summary>
        /// <param name="Node">w�z� dla kt�rego tworzymy obiekty zdj��</param>
        /// <returns>zwraca tablice obiekt�w zdj��</returns>
        private Zdjecie[] WybierzPlikiZdjec(DirTreeNode Node)
        {
            List<Zdjecie> zdjecia = new List<Zdjecie>();
            List<string> pliki = Przefiltruj(Node.Path);

            Zdjecie z;
            if (Node.Text != "M�j Komputer")
            {
                try
                {
                    for (int i = 0; i < pliki.Count; i++)
                    {
                        try
                        {
                            if ((pliki[i].ToLower().LastIndexOf(".jpg") != -1 && pliki[i].ToLower().LastIndexOf(".jpg") == (pliki[i].Length - 4)) || (pliki[i].ToLower().LastIndexOf(".jpeg") != -1 && pliki[i].ToLower().LastIndexOf(".jpeg") == (pliki[i].Length - 5)) )
                            {
                                z = new Zdjecie(pliki[i]);
                                z.ZweryfikujZdjecie();
                                zdjecia.Add(z);
                            }
                        }
                        catch (ArgumentException)
                        {

                            MessageBox.Show("Plik: \"" + pliki[i].Substring(pliki[i].LastIndexOf("\\") + 1) + "\" mimo poprawnego rozszezenie nie zawiera zdj�cia", pliki[i], MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message + " - Odmowa dost�pu", Node.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            return zdjecia.ToArray();
        }
        /// <summary>
        /// Metoda usuwa katalog z bazy
        /// </summary>
        private void UsunZKolekcji(object sender, EventArgs e)
        {
            ToolStripItem mn = (ToolStripItem)sender;

            List<string> lista_stringow = Przefiltruj(mn.ToolTipText);

            foreach (string plik in lista_stringow)
            {
                Zdjecie z = new Zdjecie(plik);
                z.ZweryfikujZdjecie();

                if (z.CzyUstawioneId() == true)
                {
                    z.UsunZdjecieZBazy();
                    z.UsunId();
                }
            }

            if (ZmienionoIds != null)
                ZmienionoIds();
        }
        /// <summary>
        /// Metoda dodaje tagi dla katalogu
        /// </summary>
        private void DodajTagiDlaKatalogu(object sender, EventArgs e)
        {
            ToolStripItem mn = (ToolStripItem)sender;

            List<string> lista_stringow = Przefiltruj(mn.ToolTipText);
            List<Zdjecie> lista_zdjec = new List<Zdjecie>();

            foreach (string plik in lista_stringow)
            {
                Zdjecie z = new Zdjecie(plik);
                z.ZweryfikujZdjecie();
                lista_zdjec.Add(z);
            }

            Dodaj_tagi_do_zdjecia dtdz = new Dodaj_tagi_do_zdjecia(lista_zdjec,true);
            dtdz.ZmienionoTagi += new ZmienionoTagiDelegate(this.ZmienionoTagi);
            dtdz.Show();
        }
 /// <summary>
 /// Metoda dodaje wpisy do bazy
 /// </summary>
 /// <param name="lista">lista plik�w o kt�rych nale�y doda� wpisy do bazy</param>
 internal void dodaj_kolekcje_do_bazy(List<string> lista)
 {
     StringBuilder sb = new StringBuilder("Nie uda�o si� doda� do kolekcji nastepuj�cych zdj��:\n");
     bool nieUdaloSie = false;
     foreach (string n in lista)
     {
         try
         {
             Zdjecie z = new Zdjecie(n);
             z.ZweryfikujZdjecie();
             if (z.DodajDoKolekcji() == false)
             {
                 sb.Append(z.Path + "\n");
                 if (nieUdaloSie == false)
                 {
                     nieUdaloSie = true;
                 }
             }
         }
         catch (Exception e)
         {
             MessageBox.Show(e.ToString());
         }
     }
     if (nieUdaloSie)
         MessageBox.Show(sb.ToString());
 }
        /// <summary>
        /// Metoda dodaje katalog do album�w
        /// </summary>
        internal void DodajDoAlbumu(object sender, EventArgs e)
        {
            ToolStripItem mn = (ToolStripItem)sender;

            List<string> lista_stringow = Przefiltruj(mn.ToolTipText);
            List<Zdjecie> lista_zdjec = new List<Zdjecie>();
            foreach (string s in lista_stringow)
            {
                Zdjecie z = new Zdjecie(s);
                z.ZweryfikujZdjecie();
                lista_zdjec.Add(z);
            }

            Dodaj_albumy_do_zdjecia dadz = new Dodaj_albumy_do_zdjecia(lista_zdjec, this, mn.ToolTipText);
            dadz.Show();

            //Dodaj_katalog_do_bazy ddk = new Dodaj_katalog_do_bazy(mn.ToolTipText, this);
            //ddk.Show();
        }
        /// <summary>
        /// Metoda która zwraca zdjêcia nale¿ace do albumu który w³aœnie klikneliœmy
        /// </summary>
        /// <param name="Node">wêz³ drzewa z którego wy³usamy nazwe albumu</param>
        /// <returns>lista zdjêæ która zosta³a utworzona przez przeszukanie bazy</returns>
        private List<Zdjecie> ZwrocZdjeciaZAlbumu(TreeNode Node)
        {
            Db baza = new Db();

            Dictionary<Int64, string> nieOdnalezione = new Dictionary<long,string>();
            //List<Int64> nieOdnalezione = new List<Int64>();
            List<Zdjecie> lista = new List<Zdjecie>();

            DataSet ds = null;
            string pelna_sciezka;

            baza.Polacz();

            try
            {
                if (Node.FullPath.IndexOf("Albumy") == 0 && Node.FullPath.Length > "Albumy".Length)
                {
                    ds = baza.Select("select sciezka,nazwa_pliku,id_zdjecia from zdjecie where id_zdjecia in (select id_zdjecia from TagZdjecia where id_tagu in (select id_tagu from Tag where album=1 and nazwa=\'" + Node.FullPath.Substring("Albumy".Length + 1, Node.FullPath.Length - ("Albumy".Length + 1)) + "\'))");
                }
                else if (Node.FullPath.IndexOf("Albumy") == 0)
                {
                    ds = baza.Select("select sciezka,nazwa_pliku,id_zdjecia from zdjecie where id_zdjecia in (select id_zdjecia from TagZdjecia where id_tagu in (select id_tagu from Tag where album=1))");
                }
                pelna_sciezka = "";

                foreach (DataTable t in ds.Tables)
                {
                    foreach (DataRow r in t.Rows)
                    {
                        if (!(r[0] is DBNull))
                        {
                            pelna_sciezka = r[0] + "\\" + r[1];

                            if (System.IO.File.Exists(pelna_sciezka) == true)
                            {
                                Zdjecie z = new Zdjecie(pelna_sciezka);
                                lista.Add(z);
                            }
                            else
                            {
                                nieOdnalezione.Add((Int64)r[2], pelna_sciezka);
                            }
                        }
                    }
                }
            }
            catch (SqlException)
            {
                MessageBox.Show("blad bazy");
            }

            baza.Rozlacz();

            if (nieOdnalezione.Count > 0)
            {
                Dictionary<long, string>.Enumerator enu = nieOdnalezione.GetEnumerator();
                KeyValuePair<long, string> kv;
                enu.MoveNext();
                while (true)
                {
                    kv = enu.Current;
                    ZnajdzPliki zp = new ZnajdzPliki(kv);
                    DialogResult dr = zp.ShowDialog();
                    if (dr == DialogResult.OK)
                    {
                        if (zp.czyOdnaleziono())
                        {
                            Zdjecie odnalezioneZdjecie = new Zdjecie(zp.OdnalezionyPlik);
                            odnalezioneZdjecie.ZweryfikujZdjecie();
                            lista.Add(odnalezioneZdjecie);
                            if (!enu.MoveNext())
                                break;
                        }
                    }
                    else if (dr == DialogResult.Cancel)
                    {
                        if (!enu.MoveNext())
                            break;
                    }
                    else if (dr == DialogResult.Abort)
                    {
                        break;
                    }
                }
            }

            return lista;
        }
        /// <summary>
        /// Metoda która zwraca zdjêcia nale¿ace do albumu który w³aœnie klikneliœmy
        /// </summary>
        /// <param name="Node">wêz³ drzewa z którego wy³usamy nazwe albumu</param>
        /// <returns>lista zdjêæ która zosta³a utworzona przez przeszukanie bazy</returns>
        private List <Zdjecie> ZwrocZdjeciaZAlbumu(TreeNode Node)
        {
            Db baza = new Db();

            Dictionary <Int64, string> nieOdnalezione = new Dictionary <long, string>();
            //List<Int64> nieOdnalezione = new List<Int64>();
            List <Zdjecie> lista = new List <Zdjecie>();

            DataSet ds = null;
            string  pelna_sciezka;

            baza.Polacz();

            try
            {
                if (Node.FullPath.IndexOf("Albumy") == 0 && Node.FullPath.Length > "Albumy".Length)
                {
                    ds = baza.Select("select sciezka,nazwa_pliku,id_zdjecia from zdjecie where id_zdjecia in (select id_zdjecia from TagZdjecia where id_tagu in (select id_tagu from Tag where album=1 and nazwa=\'" + Node.FullPath.Substring("Albumy".Length + 1, Node.FullPath.Length - ("Albumy".Length + 1)) + "\'))");
                }
                else if (Node.FullPath.IndexOf("Albumy") == 0)
                {
                    ds = baza.Select("select sciezka,nazwa_pliku,id_zdjecia from zdjecie where id_zdjecia in (select id_zdjecia from TagZdjecia where id_tagu in (select id_tagu from Tag where album=1))");
                }
                pelna_sciezka = "";

                foreach (DataTable t in ds.Tables)
                {
                    foreach (DataRow r in t.Rows)
                    {
                        if (!(r[0] is DBNull))
                        {
                            pelna_sciezka = r[0] + "\\" + r[1];

                            if (System.IO.File.Exists(pelna_sciezka) == true)
                            {
                                Zdjecie z = new Zdjecie(pelna_sciezka);
                                lista.Add(z);
                            }
                            else
                            {
                                nieOdnalezione.Add((Int64)r[2], pelna_sciezka);
                            }
                        }
                    }
                }
            }
            catch (SqlException)
            {
                MessageBox.Show("blad bazy");
            }

            baza.Rozlacz();

            if (nieOdnalezione.Count > 0)
            {
                Dictionary <long, string> .Enumerator enu = nieOdnalezione.GetEnumerator();
                KeyValuePair <long, string>           kv;
                enu.MoveNext();
                while (true)
                {
                    kv = enu.Current;
                    ZnajdzPliki  zp = new ZnajdzPliki(kv);
                    DialogResult dr = zp.ShowDialog();
                    if (dr == DialogResult.OK)
                    {
                        if (zp.czyOdnaleziono())
                        {
                            Zdjecie odnalezioneZdjecie = new Zdjecie(zp.OdnalezionyPlik);
                            odnalezioneZdjecie.ZweryfikujZdjecie();
                            lista.Add(odnalezioneZdjecie);
                            if (!enu.MoveNext())
                            {
                                break;
                            }
                        }
                    }
                    else if (dr == DialogResult.Cancel)
                    {
                        if (!enu.MoveNext())
                        {
                            break;
                        }
                    }
                    else if (dr == DialogResult.Abort)
                    {
                        break;
                    }
                }
            }

            return(lista);
        }