private Errors CheckPrasaPoorva2(YatiPrasaChecker2 Y, Prasa p1, Prasa p2) { char SUNNA = 'ం'; char VISARGA = 'ః'; if (StringPlus.CharAt(p1.Poorva, p1.Poorva.Length - 1) == SUNNA) { if (StringPlus.CharAt(p2.Poorva, p2.Poorva.Length - 1) == SUNNA) { Y.LastName = (Y.LastName == null) ? "బిందుపూర్వక ప్రాసము" : Y.LastName + "(విసర్గపూర్వక ప్రాసము)"; return(null); } else { Errors E = new Errors(); E.Actual = p1.Value; E.Expected = "'" + SUNNA + "' తో కూడిన అక్షరం"; E.Mismatch = p1.IsAnthyaPrasa ? Mismatch.AnthyaPrasaPoorvaBindu : Mismatch.PrasaPoorvaBindu; return(E); } } else { if (StringPlus.CharAt(p1.Poorva, p1.Poorva.Length - 1) == VISARGA) { if (StringPlus.CharAt(p2.Poorva, p2.Poorva.Length - 1) == VISARGA) { Y.LastName = (Y.LastName == null) ? "విసర్గపూర్వక ప్రాసము" : Y.LastName + "(విసర్గపూర్వక ప్రాసము)"; return(null); } else { Errors E = new Errors(); E.Actual = p1.Value; E.Expected = "'" + VISARGA + "' తో కూడిన అక్షరం"; E.Mismatch = p1.IsAnthyaPrasa ? Mismatch.AnthyaPrasaPoorvaVisarga : Mismatch.PrasaPoorvaVisarga; return(E); } } } return(null); }
public string CheckPrasa(string s1, string s2, bool allowSantiPrasa) { YatiPrasaChecker2 Y = new YatiPrasaChecker2(); s1 = s1.Replace(" ", ""); s2 = s2.Replace(" ", ""); Y.AllowSantiPrasa = allowSantiPrasa; Y.SoundexSandhi = false; GanaVibhajana G1 = new GanaVibhajana(s1, lang); GanaVibhajana G2 = new GanaVibhajana(s2, lang); if (G1.GWiseString.Count == 0) { return("<span class='gName'>Group-1 is not valid</span>"); } if (G2.GWiseString.Count == 0) { return("<span class='gName'>Group-2 is not valid</span>"); } bool f = false; if (G1.GWiseString.Count > 1 && G2.GWiseString.Count > 1) { p1 = G1.GWiseString[0] + "<u>" + G1.GWiseString[1] + "</u>"; p2 = G2.GWiseString[0] + "<u>" + G2.GWiseString[1] + "</u>"; Prasa P1 = new Prasa(StringPlus.CharAt(G1.SymbolsStream, 0).ToString(), false, G1.GWiseString[1], G1.GWiseString[0]); Prasa P2 = new Prasa(StringPlus.CharAt(G2.SymbolsStream, 0).ToString(), false, G2.GWiseString[1], G2.GWiseString[0]); f = Y.IsPrasaMatched3(P1, P2); if (f && Y.NoMoreChecks) { return(Success(p1, p2, PRASA, Y.LastName)); } if (f) { if (P1.Symbol == Symbols.LAGHUVU) { //Nothing to do.. } else { f = (P1.Symbol == P2.Symbol); } } if (f) { Errors E = CheckPrasaPoorva2(Y, P1, P2); if (E == null) { return(Success(p1, p2, PRASA, Y.LastName)); } return(FailWith(p1, p2, E, PRASA)); } else { return(FailWith(p1, p2, null, PRASA)); } } else { p1 = G1.GWiseString[0]; p2 = G2.GWiseString[0]; f = Y.IsPrasaMatched(p1, p2); if (f) { return(Success(p1, p2, PRASA, Y.LastName)); } } return(FailWith(p1, p2, null, PRASA)); }