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); } } }
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(); }
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; }
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); } } }