public void Append(string text)
        {
            if (ExpressionValidator.IsSpecialSymbol(text) && !CanAppendSpecialSymbol(text))
            {
                return;
            }

            _resultView.Text += text;
        }
        private string ReformatExpression(string exp)
        {
            const string validMulSign = "*";

            exp = exp.Replace(Calculator.Mul, validMulSign);
            var lastSymbol = exp[exp.Length - 1];

            if (ExpressionValidator.IsSpecialSymbol(lastSymbol))
            {
                exp = exp.Substring(0, exp.Length - 1);
            }

            return(exp);
        }
        private bool CanAppendSpecialSymbol(string text)
        {
            var result = _resultView.Text;

            if (string.IsNullOrEmpty(result))
            {
                return(false);
            }

            var lastSymbol = result[result.Length - 1];

            if (ExpressionValidator.IsSpecialSymbol(lastSymbol))
            {
                return(false);
            }

            return(true);
        }