The class below is used to create adjustable messages
using System;
/// Summary description for EnglishGrammerHelper.
/// </summary>
public class EnglishGrammerHelper
{
public EnglishGrammerHelper()
{
//
// TODO: Add constructor logic here
//
}
/// <summary>
/// Compiles sentence with person,verb and rest of the sentence
/// </summary>
/// <param name="person"></param>
/// <param name="verb"></param>
/// <param name="restSentence"></param>
/// <returns></returns>
public static string PersonMessage(string person, string verb, string restSentence)
{
switch(person.ToLower())
{
case "you":
verb=Verb(verb,true);
break;
default://not you -he/she
verb=Verb(verb,false);
break;
}//switch person
return string.Format("{0} {1} {2}",person,verb, restSentence);
}
//may be better to make private?
public static string Verb( string verb, bool bPlural)
{
if((bPlural))
{
switch(verb.ToLower())
{
case "has":
verb="have";
break;
case "does":
verb="do";
break;
case "was":
verb="were";
break;
default://leave as it is
break;
}
}
else
{
switch(verb.ToLower())
{
case "have":
verb="has";
break;
case "do":
verb="does";
break;
case "were":
verb="was";
break;
default://leave as it is
break;
}
}
return verb;
}
public static string Plural(string item)
{
string sItemItems = item;
if (!sItemItems.EndsWith("s"))
sItemItems += 's'; //make it plural
return sItemItems;
}
public static string NumberItems(int count, string item, string verb, string restSentence)
{
string sItemItems=item;
if (count!=1)
{
if (!sItemItems.EndsWith("s"))
sItemItems+='s'; //make it plural
}
verb=Verb(verb,(count!=1));
return string.Format("{0} {1} {2} {3}",count.ToString() , sItemItems,verb, restSentence);
}
/// <summary>
///
/// </summary>
/// <param name="EstimateWord">e.g "At least"</param>
/// <param name="count"></param>
/// <param name="item"></param>
/// <param name="verb"></param>
/// <param name="restSentence"></param>
/// <returns></returns>
public static string NumberItems(string EstimateWord, int count, string item, string verb, string restSentence)
{
if(String.IsNullOrEmpty(EstimateWord))
{
EstimateWord= StringHelper.EnsureEndsWith(EstimateWord, " ");
}
return string.Concat(EstimateWord + NumberItems( count, item, verb, restSentence)) ;
}