", "
").Replace("
", "
").Replace("
", "s"); poemtext = poemtext.Replace("
", "l"); poemtext = poemtext.Replace("
", "c"); poemtext = poemtext.Replace("
", "p"); poemtext = poemtext.Replace("bmp", "b"); poemtext = poemtext.Replace("np", "n"); poemtext = poemtext.Replace("ap", "a"); poemtext = poemtext.Replace("\"", "").Replace("'", ""); if (poemtext.IndexOfAny(new char[] { '<', '>' }) != -1) throw new Exception($"Invalid Characteres: {poemtext}"); if (poemtext.IndexOf("mp") != -1) throw new Exception($"مصرع اول بدون مصرع دوم: {poemtext}"); if (poemtext.Length > 0) { int idx = poemtext.IndexOfAny(new char[] { 'a', 'b', 'm', 'n', 'p', 's', 'l' , 'c' }); bool preWasBand = false; while (idx != -1) { DivanVerse verse = new DivanVerse(); verse.PoemId = poemId; verse.VOrder = verses.Count + 1; switch (poemtext[idx]) { case 'p': if (preWasBand) verse.VersePosition = VersePosition.CenteredVerse2; else verse.VersePosition = VersePosition.Paragraph; preWasBand = false; break; case 'b': verse.VersePosition = VersePosition.Right; preWasBand = false; break; case 'n': verse.VersePosition = VersePosition.Left; preWasBand = false; break; case 'a': verse.VersePosition = VersePosition.CenteredVerse1; preWasBand = true; break; case 's': verse.VersePosition = VersePosition.Paragraph; preWasBand = false; break; case 'l': verse.VersePosition = VersePosition.Single; preWasBand = false; break; case 'c': verse.VersePosition = VersePosition.Comment; preWasBand = false; break; } int nextIdx = poemtext.IndexOfAny(new char[] { 'a', 'b', 'm', 'n', 'p', 's', 'l' , 'c' }, idx + 1); if (nextIdx == -1) { verse.Text = poemtext.Substring(idx + 1).Replace("یییییییییییییییییییی", "Adaptation du milieu").Replace("ببببببببب", "Empirique"); } else { verse.Text = poemtext.Substring(idx + 1, nextIdx - idx - 1).Replace("یییییییییییییییییییی", "Adaptation du milieu").Replace("ببببببببب", "Empirique"); } verse.Text = verse.Text.Trim(); verses.Add(verse); idx = nextIdx; } } return verses; } } }