Example #1
0
        /// <summary>
        /// Solves the specified transaction as string.
        /// </summary>
        /// <param name="transactionAsString">The transaction as string.</param>
        /// <returns></returns>
        public bool Solve(string transactionAsString)
        {
            var retval = false;

            if (string.IsNullOrEmpty(transactionAsString))
            {
                throw new ArgumentNullException("Unable to solve a transaction if transactionAsString is missing");
            }

            var enquiry = $"how many {Transaction.SelectedTransaction} is";

            if (transactionAsString.StartsWith(enquiry))
            {
                var contents    = transactionAsString.Substring(enquiry.Length + 1);
                var parts       = contents.Split(' ');
                var lastUnit    = parts.Last().Trim();
                var value       = Transaction.Units[lastUnit];
                var romanNumber = (new RomanNumber()).Parse(string.Join(" ", parts.Take(parts.Length - 1)), Transaction.Symbols).Calculate();
                var result      = romanNumber * value + " " + Transaction.SelectedTransaction;
                retval           = true;
                SolutionAsString = contents + " is " + result;
                OnSolveCompleted?.Invoke(this, new EventArgs());
            }

            return(retval);
        }
Example #2
0
        /// <summary>
        /// Solves the specified transaction as string.
        /// </summary>
        /// <param name="transactionAsString">The transaction as string.</param>
        /// <returns></returns>
        public bool Solve(string transactionAsString)
        {
            var retval = false;

            if (string.IsNullOrEmpty(transactionAsString))
            {
                throw new ArgumentNullException("Unable to solve a transaction if transactionAsString is missing");
            }

            var enquiry = $"how much is";

            if (transactionAsString.StartsWith(enquiry))
            {
                var contents = transactionAsString.Substring(enquiry.Length + 1);
                var value    = (new RomanNumber()).Parse(contents, Transaction.Symbols).Calculate();
                var result   = value.ToString();
                retval           = true;
                SolutionAsString = contents + " is " + result;
                OnSolveCompleted?.Invoke(this, new EventArgs());
            }

            return(retval);
        }
Example #3
0
 /// <summary>
 /// Raises the unable to understand notification.
 /// </summary>
 public void RaiseUnableToUnderstandNotification()
 {
     SolutionAsString = "I have no idea what you are talking about";
     OnSolveCompleted?.Invoke(this, new EventArgs());
 }