protected override string BuildIntergalacticWordsListAndGetOutputToReturn(string queryInputWordsAfterIsButBeforeQuestionMark) { var queryInputWordsListAfterIsButBeforeQuestionMark = queryInputWordsAfterIsButBeforeQuestionMark.Split(new string[] { " " }, StringSplitOptions.None).Where(x => !String.IsNullOrEmpty(x.Trim())).ToList(); ContractUtility.Requires <ArgumentException>(queryInputWordsListAfterIsButBeforeQuestionMark.Count > 0, "Words count before \"is\" in the input query must be > 0"); var queryInputWordsListAfterIsButBeforeQuestionMarkTerminalListExpression = new TerminalListExpression <string>(queryInputWordsListAfterIsButBeforeQuestionMark); var normalInputSemanticLanguageExpression = new NormalInputSemanticLanguageExpression(numberFormatCalculator, symbolValues); return(queryInputWordsAfterIsButBeforeQuestionMark + " is " + normalInputSemanticLanguageExpression.Interpret(queryInputWordsListAfterIsButBeforeQuestionMarkTerminalListExpression)); }
public void Store(List <string> inputTexts) { var creditsInputs = inputTexts.Where(x => x.Contains("Credits")).ToList(); var normalInputs = inputTexts.Except(creditsInputs).ToList(); ContractUtility.Requires <ArgumentException>(normalInputs.Count > 0, "There must be some valid input"); var normalInputSemanticLanguageExpression = new NormalInputSemanticLanguageExpression(numberFormatCalculator, symbolValues); Store(normalInputSemanticLanguageExpression, normalInputs); var creditsInputSemanticLanguageExpression = new CreditslInputSemanticLanguageExpression(numberFormatCalculator, symbolValues); Store(creditsInputSemanticLanguageExpression, creditsInputs); }