/// <summary> /// 继续执行工作流 /// </summary> /// <param name="entity"></param> /// <param name="user"></param> /// <param name="ExecuteResult"></param> /// <param name="ExecuteComment"></param> /// <param name="Memo"></param> public void LabData_ContinueDBWF(string InstanceStepExecutorId, string ToStepId, string ExecuteResult, string ExecuteComment, string Memo, string currentUserId, string currentUserName, bool continueWF) { var InstanceStepExecutor = InstanceStepExecutorDAO.Get(InstanceStepExecutorId); var InstanceStep = WFDA.Instance.GetInstanceStep(InstanceStepExecutor.InstanceStepId); var Instance = WFDA.Instance.GetInstance(InstanceStepExecutor.InstanceId); // 更新 InstanceStepExecutor 的 Extend01 字段,让工作流进行流转 var toStep = WFDA.Instance.GetStep(ToStepId); SetFinished(InstanceStepExecutorId, ExecuteResult, ExecuteComment, Memo, currentUserName); WFDA.Instance.UpdateInstanceStepExt(InstanceStep.InstanceStepId, "Extend01", toStep.StepId, currentUserName); WFDA.Instance.UpdateInstanceStepExt(InstanceStep.InstanceStepId, "Extend02", toStep.StepName, currentUserName); if (continueWF) { var engine = NinjectHelper.Get <IEngine>(); if (engine == null) { throw new Exception("找不到 IEngine".GetRes()); } // 继续工作流 engine.ContinueDBWF(Instance.ModelId, Instance.InstanceId, InstanceStep.InstanceStepId, true, currentUserId, currentUserName); } }
/// <summary> /// 转签或者加签 /// </summary> /// <param name="InstanceStepExecutorId"></param> /// <param name="list"></param> /// <param name="ExecuteComment"></param> /// <param name="ExecuteResult"></param> /// <param name="p"></param> public void TransferOrAdditional(string InstanceStepExecutorId, List <VM_WF_M_USER> list, string ExecuteComment, string ExecuteResult, string currentUser) { WFInstance Instance; WFInstanceStep InstanceStep; WF_M_STEP Step; WF_T_INSTANCESTEPEXECUTOR InstanceStepExecutor; InstanceStepExecutorDAO.GetAllInfo(InstanceStepExecutorId, out InstanceStepExecutor, out InstanceStep, out Instance, out Step); ExecuteComment = string.Format("{0}\r\n{1}", ExecuteComment, InstanceStepExecutor.ExecuteComment); var engine = NinjectHelper.Get <IEngine>(); if (engine == null) { throw new WFException("找不到 IEngine".GetRes()); } var memo = string.Format("{0}{1}给{2}", currentUser, ExecuteResult, string.Join(",", list.Select(a => a.UserName))); // 加签或者转签 for (int i = 0; i < list.Count; i++) { var user = list[i]; var listInstanceStepExecutorIds = ExecutorImp.InsertOneAndProxy(InstanceStep.InstanceStepId, user.UserId, user.UserName , memo, currentUser, true); SaveAdditionalApproveInfo(listInstanceStepExecutorIds, ExecuteResult, InstanceStepExecutor.InstanceStepExecutorId, user.UserName); } if (ExecuteResult == "加签" && string.IsNullOrWhiteSpace(InstanceStep.Extend04)) { WFDA.Instance.UpdateInstanceStepExt(InstanceStep.InstanceStepId, "Extend04", InstanceStepExecutorId, currentUser); } // 结束当前我自己的任务 SetFinished(InstanceStepExecutorId, ExecuteResult, ExecuteComment, memo, currentUser); }
private static void RunSingle(Condition firstCondition, bool firstValue) { var solver = NinjectHelper.Get <IBDDSolver>(); var secondCondition = new Condition() { { "a", firstValue } }; var automata = TestHelper.CreateAutomataWithConditions(firstCondition, secondCondition); var booleanNetwork = CreateBooleanNetwork(); var availableFunctions = new Dictionary <string, List <int> >() { { "a", new List <int>() { 47 } } }; var res = solver.IsValidPath(automata, booleanNetwork, availableFunctions); Assert.IsTrue(res); secondCondition = new Condition() { { "a", !firstValue } }; automata = TestHelper.CreateAutomataWithConditions(firstCondition, secondCondition); solver = NinjectHelper.Get <IBDDSolver>(); res = solver.IsValidPath(automata, booleanNetwork, availableFunctions); Assert.IsFalse(res); }
internal static DataGridVM DeleteForm(DFDictionary queryParameters) { FormM form = null; DFDictionary entity = null; DFPub.SetDBEntity(queryParameters, ref form, ref entity); var vm = new DataGridVM(); var message = string.Empty; var da = NinjectHelper.Get <IDA>(form.DAImp); try { if (null == da) { throw new Exception("Invalid DAImp"); } if (da.Delete(form, entity, vm, ref message) != 0) { vm.hasError = true; } vm.error = message; } catch (Exception ex) { m_log.Error(ex.Message, ex); vm.hasError = true; vm.error = ex.Message; } return(vm); }
public void TestSCaseWithMultipleParametersAddSomeParamsMissingInSomeNodes() { var solver = NinjectHelper.Get <IBDDSolver>(); var automata = new GeneNode() { CurrentCondition = new Condition() { { "a", true }, { "b", false }, { "c", true } }, NodeName = "n0", Transitions = new List <GeneTransition>() { new GeneTransition() { Node = new GeneNode() { // not C here CurrentCondition = new Condition() { { "a", false }, { "b", true } }, NodeName = "n1", Transitions = new List <GeneTransition>() { new GeneTransition() { Node = new GeneNode() { NodeName = "n2", CurrentCondition = new Condition() { { "a", true }, { "b", false }, { "c", true } } } } } } } } }; // C not exist here!! var booleanNetwork = new List <GeneLink>() { new GeneLink() { From = "a", To = "a", IsPositive = false }, new GeneLink() { From = "b", To = "b", IsPositive = false }, }; var res = solver.IsValidPath(automata, booleanNetwork); Assert.IsTrue(res); }
public void TestSCaseWithThreeParametersAndThreeRulesBDDSolver() { var solver = NinjectHelper.Get <IBDDSolver>(); var automata = new GeneNode() { CurrentCondition = new Condition() { { "a", true }, { "b", false }, { "c", true } }, NodeName = "n0", Transitions = new List <GeneTransition>() { new GeneTransition() { Node = new GeneNode() { CurrentCondition = new Condition() { { "a", false }, { "b", true }, { "c", true } }, NodeName = "n1", //Transitions = new List<GeneTransition>() //{ // new GeneTransition() // { // Node = new GeneNode() // { // NodeName = "n2", // CurrentCondition = new Condition() { { "a", true }, { "b", false }, {"c", false} } // } // } //} } } } }; var booleanNetwork = new List <GeneLink>() { new GeneLink() { From = "a", To = "a", IsPositive = false }, new GeneLink() { From = "b", To = "b", IsPositive = false }, new GeneLink() { From = "a", To = "c", IsPositive = true }, }; var res = solver.IsValidPath(automata, booleanNetwork); Assert.IsTrue(res); }
public void RegisterType_InvalidContainer() { var helper = new NinjectHelper(); var container = new object(); ExceptionTester.CallMethodAndExpectException <NotSupportedException>(() => helper.RegisterType(container, typeof(ITestInterface), typeof(TestClass1), RegistrationType.Singleton)); }
public void IsValidContainer_ValidContainer() { var helper = new NinjectHelper(); var container = new StandardKernel(); Assert.IsTrue(helper.IsValidContainer(container)); }
public void RegisterInstance_InvalidContainer() { var helper = new NinjectHelper(); var container = new object(); ExceptionTester.CallMethodAndExpectException <NotSupportedException>(() => helper.RegisterInstance(container, typeof(ITestInterface), new TestClass1())); }
public void ResolveType_InterfaceTypeNull() { var helper = new NinjectHelper(); var container = new StandardKernel(); ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => helper.ResolveType(container, null)); }
public void ResolveType_InvalidContainer() { var helper = new NinjectHelper(); var container = new object(); ExceptionTester.CallMethodAndExpectException <NotSupportedException>(() => helper.ResolveType(container, typeof(ITestInterface))); }
public void GetRegistrationInfo_InterfaceTypeNull() { var helper = new NinjectHelper(); var container = new StandardKernel(); ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => helper.GetRegistrationInfo(container, null)); }
public void GetRegistrationInfo_InvalidContainer() { var helper = new NinjectHelper(); var container = new object(); ExceptionTester.CallMethodAndExpectException <NotSupportedException>(() => helper.GetRegistrationInfo(container, typeof(ITestInterface))); }
void Application_Start(object sender, EventArgs e) { // Code that runs on application startup AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); NinjectHelper.Configure(); RouteConfig.RegisterRoutes(RouteTable.Routes); }
public void RegisterType_ImplementingTypeNull() { var helper = new NinjectHelper(); var container = new StandardKernel(); ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => helper.RegisterType(container, typeof(ITestInterface), null, RegistrationType.Singleton)); }
public void IsValidContainer_InvalidContainer() { var helper = new NinjectHelper(); var container = new object(); Assert.IsFalse(helper.IsValidContainer(container)); }
public void GetRegistrationInfo_ContainerWithoutTypeRegistered() { var helper = new NinjectHelper(); var container = new StandardKernel(); Assert.IsNull(helper.GetRegistrationInfo(container, typeof(ITestInterface))); }
public void ResolveType_ContainerWithoutTypeRegistered() { var helper = new NinjectHelper(); var container = new StandardKernel(); ExceptionTester.CallMethodAndExpectException <NotSupportedException>(() => helper.ResolveType(container, typeof(ITestInterface))); }
public void RegisterInstance_InstanceNull() { var helper = new NinjectHelper(); var container = new StandardKernel(); ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => helper.RegisterInstance(container, typeof(ITestInterface), null)); }
protected override void OnStartup(StartupEventArgs e) { NinjectHelper.CreateKernel(); var connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["RutherfordEntities"].ConnectionString; NinjectHelper.Kernel.Load(new Rutherford.Service.NinjectModules.ServiceModule(connectionString)); NinjectHelper.Kernel.Load(new Rutherford.Client.NinjectModules.WpfModule()); base.OnStartup(e); }
public override int Delete(FormM form, DFDictionary entity, ref string message) { var user = Util.GetCurrentUser(); var data = JsonSerializeHelper.DeserializeObject <List <Dictionary <string, string> > >(entity["data"]); if (data == null) { throw new Exception("无效的参数 data".GetRes()); } if (entity["subAction"] == "DeleteWorkflow") { using (var db = Pub.DB) { var sql = "exec wfsp_delete_instance @InstanceId"; db.Execute(sql, data.Select(a => new { InstanceId = a["InstanceId"] })); message = "删除成功".GetRes(); } } else if (entity["subAction"] == "CancelWorkflow") { var engine = NinjectHelper.Get <IEngine>(); if (engine == null) { throw new Exception("找不到 IEngine".GetRes()); } var failed = 0; var success = 0; foreach (var item in data) { var InstanceId = item["InstanceId"]; if (!string.IsNullOrWhiteSpace(InstanceId)) { var Instance = WFDA.Instance.GetInstance(InstanceId); if (null != Instance && Instance.InstanceStatus == Pub.Running) { if (engine.AbortWF(Instance.InstanceId, user.UserId, user.UserName)) { AbortWF(Instance.InstanceId); success++; } else { failed++; } } else { failed++; } } } message = string.Format("成功取消流程 {0} 个,失败 {1} 个", success, failed); } return(DFPub.EXECUTE_SUCCESS); }
public void TestCaseWithOneParametersAndTwoStepsIn_Time_2_BDDSolverShouldPass() { var solver = NinjectHelper.Get <IBDDSolver>(); var automata = new GeneNode() { CurrentCondition = new Condition() { { "a", true } }, NodeName = "n0", Transitions = new List <GeneTransition>() { new GeneTransition() { Node = new GeneNode() { CurrentCondition = new Condition() { { "a", true } }, NodeName = "n1", Transitions = new List <GeneTransition>() { new GeneTransition() { Node = new GeneNode() { CurrentCondition = new Condition() { { "a", true } }, NodeName = "n2" } } } } } } }; var booleanNetwork = new List <GeneLink>() { new GeneLink() { From = "a", To = "a", IsPositive = true }, //new GeneLink() {From = "b", To = "b", IsPositive = false} }; var res = solver.IsValidPath(automata, booleanNetwork); Assert.IsTrue(res); }
public void RegisterType_Valid() { var helper = new NinjectHelper(); var container = new StandardKernel(); Assert.IsFalse(GetRegistrationInfo(container, (typeof(ITestInterface)))); helper.RegisterType(container, typeof(ITestInterface), typeof(TestClass1), RegistrationType.Singleton); Assert.IsTrue(GetRegistrationInfo(container, typeof(ITestInterface))); }
public void TestPositiveConnectionCantPassWithNegativeValue() { var solver = NinjectHelper.Get <IBDDSolver>(); var automata = new GeneNode() { CurrentCondition = new Condition() { }, NodeName = "n0", Transitions = new List <GeneTransition>() { new GeneTransition() { Node = new GeneNode() { CurrentCondition = new Condition() { { "a", true } }, NodeName = "n1", Transitions = new List <GeneTransition> { new GeneTransition() { Node = new GeneNode() { CurrentCondition = new Condition() { { "a", false } }, NodeName = "n2", } } } } } } }; var booleanNetwork = new List <GeneLink>() { new GeneLink() { From = "a", To = "a", IsPositive = true }, //new GeneLink() {From = "b", To = "b", IsPositive = false} }; var res = solver.IsValidPath(automata, booleanNetwork); Assert.IsFalse(res); }
public void TestCaseWithOneParameterAndTwoStepsSameAsAboveStartFromNegative() { var solver = NinjectHelper.Get <IBDDSolver>(); var automata = new GeneNode() { CurrentCondition = new Condition() { { "a", false } }, NodeName = "n0", Transitions = new List <GeneTransition>() { new GeneTransition() { Node = new GeneNode() { CurrentCondition = new Condition() { { "a", false } }, NodeName = "n1", Transitions = new List <GeneTransition>() { new GeneTransition() { Node = new GeneNode() { CurrentCondition = new Condition() { { "a", true } }, NodeName = "n2", } } } } } } }; var booleanNetwork = new List <GeneLink>() { new GeneLink() { From = "a", To = "a", IsPositive = false }, }; var res = solver.IsValidPath(automata, booleanNetwork); Assert.IsFalse(res); }
public void ResolveType_ContainerWithTypeRegistered() { var helper = new NinjectHelper(); var container = new StandardKernel(); container.Bind(typeof(ITestInterface)).To <TestClass1>(); var resolvedInstance = helper.ResolveType(container, typeof(ITestInterface)); Assert.IsNotNull(resolvedInstance); Assert.IsInstanceOfType(resolvedInstance, typeof(TestClass1)); }
public void GetRegistrationInfo_ContainerWithSingletonTypeRegistered() { var helper = new NinjectHelper(); var container = new StandardKernel(); container.Bind <ITestInterface>().To <TestClass1>().InSingletonScope(); var registrationInfo = helper.GetRegistrationInfo(container, typeof(ITestInterface)); Assert.AreEqual(typeof(ITestInterface), registrationInfo.DeclaringType); Assert.AreEqual(RegistrationType.Singleton, registrationInfo.RegistrationType); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); //Ninject NinjectModule ninjectBO = new NinjectUnitOfWork("Model1"); NinjectModule ninjectWeb = new NinjectHelper(); var kernel = new StandardKernel(ninjectWeb, ninjectBO); DependencyResolver.SetResolver(new Ninject.Web.Mvc.NinjectDependencyResolver(kernel)); }
public override DFDictionary Get(FormM form, DFDictionary entity, ref string message) { if (string.IsNullOrWhiteSpace(entity["ModelId"])) { throw new Exception("缺少参数 ModelId".GetRes()); } var engine = NinjectHelper.Get <IEngine>(); if (engine == null) { throw new Exception("找不到 IEngine".GetRes()); } var user = Util.GetCurrentUser(); var instanceId = Pub.GetNextIdFromDB("T", DateTime.Now.ToString("yyyyMMdd"), string.Empty, 4); var Requestor = user.UserId; var RequestorName = user.UserName; var RequestorProxy = string.Empty; var RequestorProxyName = string.Empty; // 开始工作流 engine.StartDBWF(entity["ModelId"], instanceId, Requestor, RequestorProxy, RequestorName, RequestorProxyName, DateTime.Now, true, user.UserId, user.UserName); var dict = new DFDictionary(); if (!string.IsNullOrWhiteSpace(entity["ModelId"])) { using (var db = Pub.DB) { var sql = "select * from WF_T_INSTANCE where 1=1"; sql += " and InstanceId=@InstanceId"; var parameters = new { InstanceId = instanceId }; var item = db.Query <WF_T_INSTANCE>(sql, parameters).FirstOrDefault(); if (item != null) { dict = DFDictionary.Create <WF_T_INSTANCE>(item); } } } return(dict); }
public void RegisterInstance_Valid() { var helper = new NinjectHelper(); var instance = new TestClass1() { Name = "test" }; var container = new StandardKernel(); Assert.IsFalse(GetRegistrationInfo(container, typeof(ITestInterface))); helper.RegisterInstance(container, typeof(ITestInterface), instance); Assert.IsTrue(GetRegistrationInfo(container, typeof(ITestInterface))); Assert.AreEqual(instance, container.Get <ITestInterface>()); }