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)); }
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 })); }
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)); }