Exemplo n.º 1
0
 /// <summary>
 /// Serves as a hash function for a particular type.
 /// </summary>
 /// <returns>
 /// A hash code for the current <see cref="T:System.Object"/>.
 /// </returns>
 /// <filterpriority>2</filterpriority>
 public override int GetHashCode()
 {
     unchecked
     {
         int result = (Nazev != null ? Nazev.GetHashCode() : 0);
         result = (result * 397) ^ FormatWordu.GetHashCode();
         result = (result * 397) ^ Zmeneno.GetHashCode();
         result = (result * 397) ^ (KontrolniSoucet != null ? KontrolniSoucet.GetHashCode() : 0);
         result = (result * 397) ^ (Adresar != null ? Adresar.GetHashCode() : 0);
         return(result);
     }
 }
Exemplo n.º 2
0
        public Prepisy NacistPrepisy(bool blnJenomZaklad)
        {
            DirectoryInfo di = new DirectoryInfo(mstrSlozka);

            if (String.IsNullOrEmpty(mstrMaska))
            {
                mstrMaska = "*.do*?";
            }
            FileInfo[] fis = di.GetFiles(mstrMaska, SearchOption.TopDirectoryOnly);
            Prepis[]   dkm = new Prepis[fis.Length];
            Prepisy    prp = new Prepisy();

            mintPocetSouboru = fis.Length;
            if (NacteniSouboru != null)
            {
                NacteniSouboru(this, new NacteniPrepisuEventArgs(mintPocetSouboru));
            }


            for (int i = 0; i < fis.Length; i++)
            {
                if (NacteniSouboru != null)
                {
                    NacteniSouboru(this, new NacteniPrepisuEventArgs(mintPocetSouboru, i + 1, fis[i].Name));
                }

                string  sSouborDocx = null;
                ISoubor sb          = new Evidence.Soubor();
                sb.Adresar  = mstrSlozka;
                sb.Nazev    = fis[i].Name;
                sb.Zmeneno  = fis[i].LastWriteTime;
                sb.Velikost = fis[i].Length;
                if (fis[i].Extension.ToLower() == ".docx" | fis[i].Extension.ToLower() == ".docm")
                {
                    sSouborDocx    = sb.CelaCesta;
                    sb.FormatWordu = FormatSouboru.Docx;
                }
                else if (fis[i].Extension.ToLower() == ".doc")
                {
                    sb.FormatWordu = FormatSouboru.Doc;
                }
                else
                {
                    sb.FormatWordu = FormatSouboru.Neznamy;
                }
                sb.KontrolniSoucet = KontrolniSoucet.GetMD5Hash(fis[i].FullName);

                if (!blnJenomZaklad)
                {
                    if (sb.FormatWordu == FormatSouboru.Doc)
                    {
                        throw new FormatException("Sobory DOC nejsou podporovány");
                        sSouborDocx = System.IO.Path.GetTempPath() + fis[i].Name + "x";
                        //Konverze.Doc2Docx(fis[i].FullName, sSouborDocx);
                        FileInfo fi = new FileInfo(sSouborDocx);
                        if (fi.Exists)
                        {
                            sb.Velikost = fi.Length;
                        }
                    }
                }
                Hlavicka   hl = new Hlavicka();
                Zpracovani zp = new Zpracovani();

                //object oGuid = Metadata.NactiUzivatelskouVlastnost(sb.CelaCesta, Enum.GetName(typeof(Metaudaje), Metaudaje.htx_id));
                //if (oGuid != null)
                //   dk.GUID = oGuid.ToString();
                string[] asMetaudaje = Enum.GetNames(typeof(Metaudaje));
                object[] aoUdaje     = Metadata.NactiUzivatelskeVlastnosti(sb.CelaCesta, asMetaudaje);
                for (int j = 0; j < asMetaudaje.Length; j++)
                {
                    if (aoUdaje[j] != null)
                    {
                        DateTime dtExport;


                        switch (asMetaudaje[j])
                        {
                        case "htx_id":
                            zp.GUID = aoUdaje[j].ToString();
                            break;

                        case "htx_posledniExport_1":
                            if (PrevestNaDatum(aoUdaje[j], out dtExport))
                            {
                                zp.Exporty.Add(new Export(ZpusobVyuziti.Manuscriptorium, dtExport));
                            }
                            break;

                        case "htx_posledniExport_2":
                            if (PrevestNaDatum(aoUdaje[j], out dtExport))
                            {
                                zp.Exporty.Add(new Export(ZpusobVyuziti.StaroceskyKorpus, dtExport));
                            }
                            break;

                        case "htx_posledniExport_4":
                            if (PrevestNaDatum(aoUdaje[j], out dtExport))
                            {
                                zp.Exporty.Add(new Export(ZpusobVyuziti.StredoceskyKorpus, dtExport));
                            }
                            break;

                        case "htx_fazeZpracovani":
                            zp.FazeZpracovani = (FazeZpracovani)Enum.Parse(typeof(FazeZpracovani), aoUdaje[j].ToString());
                            break;

                        case "ovj_casoveZarazeni":
                            zp.CasoveZarazeni = (CasoveZarazeni)Enum.Parse(typeof(CasoveZarazeni), aoUdaje[j].ToString());
                            break;

                        case "ovj_zpusobVyuziti":
                            zp.ZpusobVyuziti = (ZpusobVyuziti)Enum.Parse(typeof(ZpusobVyuziti), aoUdaje[j].ToString());
                            break;

                        case "htx_neexportovat":
                            bool bNeexportovat;
                            if (Boolean.TryParse(aoUdaje[j].ToString(), out bNeexportovat))
                            {
                                zp.Neexportovat = bNeexportovat;
                            }
                            else
                            {
                                zp.Neexportovat = false;
                            }
                            break;

                        default:
                            break;
                        }
                    }
                }
                asMetaudaje = new string[] { "Titul", "Předmět", "Komentář", "Autor" };
                aoUdaje     = Metadata.NactiZabudovaneVlastnosti(sb.CelaCesta, asMetaudaje);
                for (int j = 0; j < asMetaudaje.Length; j++)
                {
                    if (aoUdaje[j] != null)
                    {
                        switch (asMetaudaje[j])
                        {
                        case "Titul":
                            hl.Titul = aoUdaje[j].ToString();
                            break;

                        case "Předmět":
                            hl.InstituceUlozeni = aoUdaje[j].ToString();
                            break;

                        case "Komentář":
                            hl.Signatura = aoUdaje[j].ToString();
                            break;

                        case "Autor":
                            hl.EditoriPrepisu = GetCleanEditori(aoUdaje[j].ToString());
                            break;

                        default:
                            break;
                        }
                    }
                }

                string grantovaPodpora = null;
                if (!blnJenomZaklad)
                {
                    NactiHlavickuZTabulky(sSouborDocx, ref hl);
                    grantovaPodpora = ZjistiGrantovouPodporu(sSouborDocx);
                }

                Prepis dk = new Prepis(hl, sb, zp);
                //dk.Identifikator = i;
                dk.Zpracovani.GrantovaPodpora = grantovaPodpora;
                dkm[i] = dk;

                prp.Add(dk);


                if (dk.Soubor.CelaCesta != sSouborDocx & sSouborDocx != null)
                {
                    File.Delete(sSouborDocx);
                }
            }
            return(prp);
            //return dkm;
        }