Beispiel #1
0
 private void LoadQuran()
 {
     using (var file = File.OpenRead(QuranConfig.Current.FilePath))
     {
         using (CryptoStream cs = new CryptoStream(file, Crypto.AES.CreateDecryptor(), CryptoStreamMode.Read))
         {
             quran = Serializer.Deserialize <Quran.Model.Quran>(cs);
         }
     }
 }
Beispiel #2
0
        public TransMapper(Model.Quran quran, Model.TranslatedQuran trans, SuraMeta suraMeta)
        {
            InitializeComponent();

            this.quran         = quran;
            this.trans         = trans;
            this.suraMeta      = suraMeta;
            this.suraName.Text = suraMeta.NameArabic;

            LoadAyas();
        }
Beispiel #3
0
        private void LoadSuras()
        {
            int si = lbSuras.SelectedIndex;

            if (si == -1)
            {
                si = 0;
            }

            lbSuras.Items.Clear();

            BitmapImage hasSlicesBitmap = new BitmapImage();

            hasSlicesBitmap.BeginInit();
            hasSlicesBitmap.UriSource = new Uri("../../content/HasSlices.png", UriKind.RelativeOrAbsolute);
            hasSlicesBitmap.EndInit();

            // Load Quran
            Quran.Model.Quran quran = null;
            using (var file = File.OpenRead(QuranConfig.Current.FilePath))
            {
                using (CryptoStream cs = new CryptoStream(file, Crypto.AES.CreateDecryptor(), CryptoStreamMode.Read))
                {
                    quran = Serializer.Deserialize <Quran.Model.Quran>(cs);
                }
            }

            foreach (var sura in QuranConfig.Current.Meta.Suras)
            {
                Image hasSlicesImg = new Image();
                hasSlicesImg.Source = hasSlicesBitmap;
                hasSlicesImg.Height = 16;

                bool hasSlices = false;
                int  sliceNo   = 0;
                foreach (var aya in quran.Suras[sura.SuraNo - 1].Ayas)
                {
                    sliceNo += aya.Slices.Count();
                    if (aya.Slices.Count() > 1)
                    {
                        hasSlices = true;
                    }
                }

                string    text = sura.SuraNo.ToString().PadLeft(3, '0') + "   " + sura.NameArabic.ToString();
                TextBlock tb   = new TextBlock();

                if (hasSlices)
                {
                    tb.Inlines.Add(hasSlicesImg);
                    tb.Inlines.Add("   ");
                    tb.Foreground = Brushes.LightGray;
                }
                else
                {
                    tb.Inlines.Add("     ");
                }


                if (!QuranConfig.Current.EngineeInfo.LockedSuras[sura.SuraNo - 1])
                {
                    tb.Foreground = Brushes.LightGray;
                }
                else
                {
                    tb.Foreground = Brushes.Black;
                }

                tb.Inlines.Add(text);

                if (trans.Suras[sura.SuraNo - 1].AllSlices.Count() != sliceNo)
                {
                    tb.Inlines.Add(" *");
                }

                lbSuras.Items.Add(tb);
            }

            lbSuras.SelectedIndex = si;
        }
Beispiel #4
0
        private static void Finalize()
        {
            string path = string.Format("../../Out/{0}-midstage.txt", QuranConfig.Current.FileName);

            string[] lines = File.ReadAllText(path).Split(new string[] { "\r\n" }, StringSplitOptions.None);

            Model.Quran quran = new Model.Quran();
            quran.TextType    = (int)QuranTextType.Uthmani;
            quran.Version     = QuranConfig.Current.Version;
            quran.Created     = DateTime.Today.ToShortDateString();
            quran.Description = "";

            List <Sura> suras = new List <Sura>();
            List <Aya>  ayas  = new List <Aya>();

            int suraNo = 1;
            int ayaNo  = 1;

            foreach (string line in lines)
            {
                if (line.Trim().Length == 0 || Int32.Parse(line.Substring(0, 3)) != suraNo)
                {
                    Sura sura = new Sura();
                    sura.Ayas        = (Aya[])ayas.ToArray();
                    sura.Index       = QuranConfig.Current.Meta.Suras[suraNo - 1].SuraNo;
                    sura.TotalAyas   = QuranConfig.Current.Meta.Suras[suraNo - 1].TotalAyas;
                    sura.Order       = QuranConfig.Current.Meta.Suras[suraNo - 1].Order;
                    sura.NameArabic  = QuranConfig.Current.Meta.Suras[suraNo - 1].NameArabic;
                    sura.NameEnglish = QuranConfig.Current.Meta.Suras[suraNo - 1].NameEnglish;
                    sura.IsMeccan    = QuranConfig.Current.Meta.Suras[suraNo - 1].IsMeccan;
                    suras.Add(sura);

                    // Reset
                    ayas = new List <Aya>();
                    ++suraNo;

                    if (suraNo == 1 || suraNo == 9)
                    {
                        ayaNo = 1;
                    }
                    else
                    {
                        ayaNo = 0;
                    }
                }


                if (line.Trim().Length > 0)
                {
                    Aya aya = new Aya();
                    aya.AyaNo = ayaNo;
                    if (ayaNo == 0)
                    {
                        aya.Slices = new Slice[1] {
                            new Slice()
                            {
                                SliceID = suraNo * 1000000, AyaNo = ayaNo, Text = line.Remove(0, 8) + " "
                            }
                        }
                    }
                    ;
                    else
                    {
                        aya.Slices = new Slice[1] {
                            new Slice()
                            {
                                SliceID = suraNo * 1000000 + ayaNo * 1000 + 1, AyaNo = ayaNo, Text = line.Remove(0, 8) + " "
                            }
                        }
                    };

                    ApplySajda(suraNo, aya);

                    aya.Page   = GetValue(QuranConfig.Current.Meta.Pages, suraNo, aya.AyaNo);
                    aya.Juz    = GetValue(QuranConfig.Current.Meta.Juzs, suraNo, aya.AyaNo);
                    aya.Hizb   = GetValue(QuranConfig.Current.Meta.Hizbs, suraNo, aya.AyaNo);
                    aya.Manzil = GetValue(QuranConfig.Current.Meta.Manzils, suraNo, aya.AyaNo);
                    aya.Ruku   = GetValue(QuranConfig.Current.Meta.Rukus, suraNo, aya.AyaNo);

                    ayas.Add(aya);

                    ++ayaNo;
                }
            }

            quran.Suras = suras.ToArray();

            if (quran.Suras.Length != 114)
            {
                throw new ApplicationException("There is no 114 Suras!");
            }

            using (var file = File.Create(string.Format("../../Out/{0}.dat", QuranConfig.Current.FileName)))
            {
                using (CryptoStream cs = new CryptoStream(file, Crypto.AES.CreateEncryptor(), CryptoStreamMode.Write))
                {
                    Serializer.Serialize <Model.Quran>(cs, quran);
                }
            }
        }