using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace Baza_Reklam
{
    /// <summary>
    /// Klasa budująca ścieżki do plików JPG, EPS, CDR. Przepisana prawie bez zmian ze starej bazy.
    /// </summary>
    class Produkcja
    {
        /// <summary>
        /// Zmienne wskazują, które pliki są nowe, a które w archiwum. 
        /// </summary>
        private const int Const_NoweNazwyPlikow = 0;
        private const int Const_StareNazwyPlikow = 1;
        private const int Const_ArchiwumPlikow = 2;


        public static byte typNazwy(int rok)
        {
            if (rok >= 2005)
            {
                return 0;
            }
            return 1;
        }
        
        public static string BezPolskichZnakow(string s) {
            s = s.Replace("ą", "a");
            s = s.Replace("ę", "e");
            s = s.Replace("ć", "c");
            s = s.Replace("ś", "s");
            s = s.Replace("ł", "l");
            s = s.Replace("ż", "z");
            s = s.Replace("ź", "z");
            s = s.Replace("ó", "o");
            s = s.Replace("ń", "n");
            return s;
        }

        public static string GetF_ROZ(string idReklamy,int GRZBIET, string tyt)
        {
            switch (tyt)
            {
                case "AMT":
                    return idReklamy.Substring(0, 4);
                case "GS":
                    //grzbiet śląski
                    if (GRZBIET == 9) return idReklamy.Substring(0, 4);
                    //grzbiet warszawski
                    if (GRZBIET == 7) return idReklamy.Substring(0, 4);
                    return idReklamy.Substring(0, 3);
                default:
                    return idReklamy.Substring(0, 4);
            }
            return "";
        }

        public static string GetShortReklamaName(string idReklamy,int GRZBIET,string tyt){
            switch (tyt)
            {
                case "AMT":
                    return idReklamy.Substring(0, 7);
                case "GS":
                    //grzbiet ślaski
                    if (GRZBIET == 9) return idReklamy.Substring(0, 7);
                    //grzbiet warszawski
                    if (GRZBIET == 7) return idReklamy.Substring(0, 7);
                    return idReklamy.Substring(0, 6);
                case "AGRO":
                    return idReklamy.Substring(0, 7);
                case "EXPO":
                    return idReklamy.Substring(0, 7);
            }
            return "";
        }
        
        
        public static string GetReklamaFileName(string idReklamy,string TYTUL,int GRZBIET,string miasto,byte StaryNowyArchiwum,string FileRoz) { 
            
            string F_ROZ;
            string PathName="";
            string Reklama_PathName = "";

            // if (costam) {Reklama_PathName = "G:\\ReklamaFiles\\"};
            // Properties.Settings.Default.reklamaPath = "G:\\ReklamaFiles\\"
            Reklama_PathName = Properties.Settings.Default.reklamaPath;

            if (miasto.ToLower() == "słupsk") {miasto = "redakcja";}
            if (miasto.ToLower() == "gdańsk") {miasto = "gdynia";}

            F_ROZ = GetF_ROZ(idReklamy,GRZBIET,TYTUL);

            if (StaryNowyArchiwum == Const_NoweNazwyPlikow)
            {
                idReklamy = GetShortReklamaName(idReklamy,GRZBIET,TYTUL);
            }

             //stare ścieżki do plików
             if (StaryNowyArchiwum == Const_StareNazwyPlikow) {
             if (FileRoz == "cdr"){PathName = "\\\\Home\\cc1\\DTP\\REKLAMY\\"; }
             if (FileRoz == "eps"){PathName = "\\\\Home\\cc1\\DTP\\EPS\\"; }
             if (FileRoz == "jpg"){PathName = "\\\\Home\\cc1\\DTP\\JPG\\"; }
             if (FileRoz == "pdf") { PathName = "\\\\Home\\cc1\\DTP\\JPG\\"; }
   
             switch (GRZBIET) {
                 case 5: //POMORSKI
                     miasto = "E_AUTO";
                     break;
                 case 7: //STOŁECZNY
                     miasto = "F_AUTO";
                     break;
                 case 9: //KATOWICKI
                     miasto = "G_AUTO";
                     break;
                 case 10: //SZCZECIŃSKI
                     miasto = "I_AUTO";
                     break;
             }

             switch (TYTUL){
                 case "GS":
                     TYTUL = "Gielda";
                     PathName = PathName + "_" + TYTUL + "\\" + miasto + "\\" + F_ROZ + "\\" + idReklamy + "." + FileRoz;
                     break;
                 case "AMT":
                     TYTUL = "Truck";
                     PathName = PathName + "_" + TYTUL + "\\" + miasto + "\\" + F_ROZ + "\\" + idReklamy + "." + FileRoz;
                     break;
                 case "PROMO":
                     TYTUL = "Promo";
                     PathName = PathName + "_" + TYTUL + "\\" + miasto + "\\" + F_ROZ + "\\" + idReklamy + "." + FileRoz;
                     break;
                 case "AGRO":
                     TYTUL = "agro";
                     PathName = PathName + "_" + TYTUL + "\\" + miasto + "\\" + F_ROZ + "\\" + idReklamy + "." + FileRoz;
                     break;
                 case "EXPO":
                     TYTUL = "expo";
                     PathName = PathName + "_" + TYTUL + "\\" + miasto + "\\" + F_ROZ + "\\" + idReklamy + "." + FileRoz;
                     break;
             }
    
    
             }//koniec starych
        

             //nowe nazwy plików
             if (StaryNowyArchiwum == Const_NoweNazwyPlikow) {
               if (Reklama_PathName == "") {
                   Reklama_PathName = "\\\\HOME\\CC1\\DTP\\ReklamaFiles\\"; //zabezpieczenie na wypadek błędu w programie
               }
             PathName = Reklama_PathName; //wartość zmiennej Reklama_PathName ustalana jest w LoginModule

             if (FileRoz == "pdf")
             {
                 PathName = PathName + "JPG" + "\\" + TYTUL + "\\" + miasto + "\\" + F_ROZ + "\\" + idReklamy + "." + "pdf";
             }
             else {
                 PathName = PathName + FileRoz + "\\" + TYTUL + "\\" + miasto + "\\" + F_ROZ + "\\" + idReklamy + "." + FileRoz;
             }
             
             }
   
             //ARCHIWUM
             if (StaryNowyArchiwum == Const_ArchiwumPlikow) {
               if (Reklama_PathName == "") {
                 Reklama_PathName = "\\\\HOME\\CC1\\DTP\\ReklamaFiles\\"; //zabezpieczenie na wypadek błędu w programie
              }
             PathName = Reklama_PathName + "_ARCHIWUM\\";

             if (FileRoz == "pdf")
             {
                 PathName = PathName + "JPG" + "\\" + TYTUL + "\\" + miasto + "\\" + F_ROZ + "\\" + idReklamy + "." + "pdf";
             }
             else
             {
                 PathName = PathName + FileRoz + "\\" + TYTUL + "\\" + miasto + "\\" + F_ROZ + "\\" + idReklamy + "." + FileRoz;
             }           
                               
             }             
            
             PathName = BezPolskichZnakow(PathName.ToLower());
             PathName = PathName.ToUpper();

             return PathName;
         }

        public static void argumentyDoSciezki(int reklamaId ,string idReklamy,out string TYTUL, out int GRZBIET, out string miasto, out byte StaryNowyArchiwum){

            TYTUL = "";
            GRZBIET = 0;
            miasto = "";
            StaryNowyArchiwum = 1;

            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "select R.TYTUŁ,datepart(year,R.[DATA ZAMÓWIENIA]),R.GRZBIET,dbo.AGENCJE.miasto " +
                    " from REKLAMA R left join dbo.AGENCI on dbo.AGENCI.symbol = R.[SYMBOL AKWIZYTORA] left join  dbo.AGENCJE " +
                    " on dbo.AGENCI.ID_AGENCJI=dbo.AGENCJE.Id_agencji where reklamaId=@rekID";

            cmd.Parameters.AddWithValue("@rekId", reklamaId);

            cmd.Connection = new SqlConnection(ConnString.getConnString().Value);

            cmd.Connection.Open();

            SqlDataReader reader = cmd.ExecuteReader();
                        
            while (reader.Read()) {
                TYTUL = reader.IsDBNull(0) ? TYTUL : reader.GetValue(0).ToString();
                StaryNowyArchiwum = reader.IsDBNull(1) ? StaryNowyArchiwum : Produkcja.typNazwy(Convert.ToInt32(reader.GetValue(1))); ;
                GRZBIET = reader.IsDBNull(2) ? GRZBIET : Convert.ToInt32(reader.GetValue(2));
                miasto = reader.IsDBNull(3) ? miasto : reader.GetValue(3).ToString();             
            }

            cmd.Connection.Close();
        
        }
    }
}
