public JsonResult Clear()
        {
            ElementaryArithCaculator receiver;

            if (Session["calculator"] == null)
            {
                Session.Add("calculator", new ElementaryArithCaculator());
            }
            if (Session["invoker"] == null)
            {
                Session.Add("invoker", new CalculationInvoker());
            }
            receiver = new ElementaryArithCaculator();
            invoker  = new CalculationInvoker();
            Session["calculator"] = receiver;
            Session["invoker"]    = invoker;
            return(Json(receiver.GetResult(), JsonRequestBehavior.AllowGet));
        }
        public JsonResult Compute(int operand, string @operator)
        {
            ElementaryArithCaculator receiver;

            if (Session["calculator"] == null)
            {
                Session.Add("calculator", new ElementaryArithCaculator());
            }
            if (Session["invoker"] == null)
            {
                Session.Add("invoker", new CalculationInvoker());
            }
            receiver = (ElementaryArithCaculator)Session["calculator"];
            invoker  = (CalculationInvoker)Session["invoker"];
            //(new CalculationInvoker()).Compute(receiver, @operator, operand);
            invoker.Compute(receiver, @operator, operand);
            Session["calculator"] = receiver;
            Session["invoker"]    = invoker;
            return(Json(receiver.GetResult(), JsonRequestBehavior.AllowGet));
        }