/// <summary> /// Answer to questions about credits(e.g. how many Credits is glob prok Iron ?) /// using RomanNumber claculator method and AlianToRomanDictionary ToRomanNumber method /// </summary> /// <param name="questions"></param> /// <returns></returns> private List <string> _QCreditHandler(List <string> questions) { var res = new List <string>(); questions.ForEach(item => { List <string> parts = item.Split(' ').ToList(); var alianNumber = parts.Skip(4).Take(parts.Count - 6).ToList(); var romanNumber = alianToRomanDictionary.ToRomanNumber(alianNumber); var romanAmount = new RomanNumber().Calculate(romanNumber); var creditName = parts[parts.Count - 2]; var thisCredit = credit.CreditValues[creditName]; if (romanAmount != -1) { res.Add(alianNumber.Aggregate((i, j) => i + " " + j) + " " + creditName + " is " + romanAmount * System.Convert.ToInt32(thisCredit) + " Credits"); } else { res.Add(alianNumber.Aggregate((i, j) => i + " " + j) + " " + creditName + " is invalid !!!"); } }); return(res); }
/// <summary> /// Calculate Credit values by translating creditStatements and using AlianNumberDictionary /// </summary> /// <param name="creditStatements"></param> /// <param name="alianNumberDictionary"></param> internal void CalculateCreditValues(List <string> creditStatements, Dictionary <string, string> alianNumberDictionary) { creditStatements.ForEach(item => { List <string> parts = item.Split(' ').ToList(); var romanNumber = new AlianToRomanDictionary(alianNumberDictionary).ToRomanNumber(parts.Take(parts.Count - 4).ToList()); var romanAmount = new RomanNumber().Calculate(romanNumber); CreditValues.Add(parts[parts.Count - 4], (System.Convert.ToInt32(parts[parts.Count - 2]) / romanAmount).ToString()); }); }
/// <summary> /// Calculate Credit values by translating creditStatements and using AlianNumberDictionary /// </summary> /// <param name="creditStatements"></param> /// <param name="alianNumberDictionary"></param> internal void CalculateCreditValues(List<string> creditStatements,Dictionary<string,string> alianNumberDictionary) { creditStatements.ForEach(item => { List<string> parts = item.Split(' ').ToList(); var romanNumber = new AlianToRomanDictionary(alianNumberDictionary).ToRomanNumber(parts.Take(parts.Count - 4).ToList()); var romanAmount = new RomanNumber().Calculate(romanNumber); CreditValues.Add(parts[parts.Count-4], (System.Convert.ToInt32(parts[parts.Count - 2]) / romanAmount).ToString()); }); }
/// <summary> /// Answer to questions about currency(e.g. how much is pish tegj glob glob ?) /// using RomanNumber claculator method and AlianToRomanDictionary ToRomanNumber method /// </summary> /// <param name="questions"></param> /// <returns></returns> private List <string> _QCurrencyHandler(List <string> questions) { var res = new List <string>(); questions.ForEach(item => { List <string> parts = item.Split(' ').ToList(); var alianNumber = parts.Skip(3).Take(parts.Count - 4).ToList(); var romanNumber = alianToRomanDictionary.ToRomanNumber(alianNumber); var romanAmount = new RomanNumber().Calculate(romanNumber); if (romanAmount != -1) { res.Add(alianNumber.Aggregate((i, j) => i + " " + j) + " is " + romanAmount); } else { res.Add(alianNumber.Aggregate((i, j) => i + " " + j) + " is invalid !!!"); } }); return(res); }
/// <summary> /// Answer to questions about credits(e.g. how many Credits is glob prok Iron ?) /// using RomanNumber claculator method and AlianToRomanDictionary ToRomanNumber method /// </summary> /// <param name="questions"></param> /// <returns></returns> private List<string> _QCreditHandler(List<string> questions) { var res = new List<string>(); questions.ForEach(item => { List<string> parts = item.Split(' ').ToList(); var alianNumber = parts.Skip(4).Take(parts.Count - 6).ToList(); var romanNumber = alianToRomanDictionary.ToRomanNumber(alianNumber); var romanAmount = new RomanNumber().Calculate(romanNumber); var creditName=parts[parts.Count - 2]; var thisCredit = credit.CreditValues[creditName]; if (romanAmount!=-1) res.Add(alianNumber.Aggregate((i, j) => i + " " + j) + " " + creditName + " is " + romanAmount * System.Convert.ToInt32(thisCredit) + " Credits"); else res.Add(alianNumber.Aggregate((i, j) => i + " " + j) + " " + creditName + " is invalid !!!"); }); return res; }
/// <summary> /// Answer to questions about currency(e.g. how much is pish tegj glob glob ?) /// using RomanNumber claculator method and AlianToRomanDictionary ToRomanNumber method /// </summary> /// <param name="questions"></param> /// <returns></returns> private List<string> _QCurrencyHandler(List<string> questions) { var res = new List<string>(); questions.ForEach(item => { List<string> parts = item.Split(' ').ToList(); var alianNumber = parts.Skip(3).Take(parts.Count - 4).ToList(); var romanNumber = alianToRomanDictionary.ToRomanNumber(alianNumber); var romanAmount = new RomanNumber().Calculate(romanNumber); if (romanAmount != -1) res.Add(alianNumber.Aggregate((i,j)=>i +" " +j) + " is " + romanAmount); else res.Add(alianNumber.Aggregate((i, j) => i + " " + j) + " is invalid !!!"); }); return res; }