Esempio n. 1
0
        public ActionResult MCM(MCMVM mcm)
        {
            var _m = Session["MCM"];

            if (_m != null)
            {
                mcm = _m as MCMVM;
                Session.Remove("MCM");
            }
            mcm.Diss = mcm.Diss == null ? new Dis[] { } : mcm.Diss;
            return(View(mcm));
        }
Esempio n. 2
0
        public JsonResult MCMSave(MCMVM mcm)
        {
            foreach (var n in mcm.Diss)
            {
                if (n.Name.ToUpper() == "Y")
                {
                    return(Json(new { message = "参数名称不能够为y" }));
                }
            }
            var userid = Convert.ToInt32(HttpContext.Request.Cookies["userid"].Value);

            Script.DeleteJob(mcm.JobID);
            var jobid = Script.CreateJob(userid, -mcm.MCMType, mcm.Title, mcm.DecimalDigitCount);
            var dal   = new MCMDAL();
            var mcmID = dal.SaveMCM(new MCM {
                JobID = jobid, MCMInfo = JsonConvert.SerializeObject(mcm)
            });

            return(Json(new { message = "success", mcmID, jobid }));
        }
Esempio n. 3
0
        public async Task <JsonResult> MCMRun(MCMVM mcm)
        {
            return(await Task.Factory.StartNew(() =>
            {
                EvaluationContext ec = new EvaluationContext(new Plan(), new Step[] { });

                ec.Settings = new Settings();
                ec.Settings.DecimalDigitCount = mcm.DecimalDigitCount;
                if (mcm.MCMType == 2)
                {
                    double J, M;
                    J = Math.Floor(100 / (1 - mcm.p));
                    M = J > 1e4 ? J : 1e4;
                    mcm.RunNum = (int)M;
                }
                foreach (var n in mcm.Diss)
                {
                    if (n.Name.ToUpper() == "Y")
                    {
                        return Json(new { message = "参数名称不能够为y" });
                    }
                    var values = GetSample(n.DisType, mcm.RunNum, n.DisParams);
                    ec.SetValueAcrossSteps(n.Name, values);
                    ec.SetValue(n.Name, values);
                }
                Session["Context"] = ec;
                if (mcm.MCMType == 1)
                {
                    var result = StatisticsFuncs.MCM_1(mcm.RunNum, mcm.p, "y=" + mcm.GS, ec);
                    return Json(new { message = "success", result });
                }
                else
                {
                    var result = StatisticsFuncs.MCM_2(mcm.p, mcm.n_dig, "y=" + mcm.GS, ec);
                    return Json(new { message = "success", result });
                }
            }, TaskCreationOptions.LongRunning));
        }