private string printStem(string before, string after) { string stem = ""; switch (this.getStemTime()) { case STEM_TIME.MAZI: stem = this.entry.pastStem; break; case STEM_TIME.MOZARE: stem = this.entry.presentStem; break; default: stem = ""; break; } /****** Transform Stem ******************************/ bool stemStartsWithA = (entry.StartingAlpha(getStemTime()) == STEM_ALPHA.A_X); bool No_Space_Before = (before.Length > 0 && before[before.Length - 1] != '' && before[before.Length - 1] != ' '); bool stemEndsWithA = (entry.EndingAlpha(getStemTime()) == STEM_ALPHA.X_A); bool No_Space_After = (after.Length > 0 && after[0] != '' && after[0] != ' '); if (stemStartsWithA) { if (No_Space_Before) { if (stem.StartsWith("آ")) { stem = "یا" + stem.Substring(1); } else { stem = "ی" + stem.Substring(1); } } } if (stemEndsWithA) { if (No_Space_After) { stem += "ی"; } } return(stem); }