public async Task <FlowResult <FlowTransition> > CreateFlowTransitionAsync(InitFlowTransitionModel model) { var set = StateManager.GetFlowSet <FlowTransition>(); var stateSet = StateManager.GetFlowSet <FlowState>(); var source = await stateSet.GetByIdAsync(model.SourceId); if (source == null) { return(FlowResult <FlowTransition> .Failed(new FlowError(FlowErrors.ItemNotFound, nameof(source)))); } var destination = await stateSet.GetByIdAsync(model.DestinationId); if (destination == null) { return(FlowResult <FlowTransition> .Failed(new FlowError(FlowErrors.ItemNotFound, nameof(destination)))); } var entity = FlowEntity.InitializeType(new FlowTransition() { Name = model.Name, Title = model.Title, SourceId = source.Id, DestinationId = destination.Id, TransitionType = model.TransitionType, TypeId = source.TypeId, }); var result = await set.CreateAsync(entity); return(FlowResult <FlowTransition> .Successful(result)); }
public async Task IntiFlowTransition_WithCorrectModel_MustInitialize() { //Arrange var stateManager = new MockState().MockStateManager(); var flowManager = new ManagerFactory().GetFlowManager(stateManager); var flowType = MockData.GetFlowTypes()[0]; var approve1State = MockData.GetFlowStates() .ToList().FirstOrDefault(x => x.Name == "Approve1"); var activeState = MockData.GetFlowStates() .ToList().FirstOrDefault(x => x.Name == "Active"); var initModel = new InitFlowTransitionModel() { Name = "FinalApprove", Title = "FinalApprove", SourceId = approve1State.Id, DestinationId = activeState.Id, TransitionType = FlowTransitionTypes.Reject, TypeId = flowType.Id }; //Act var act = await flowManager.InitFlowTransitionAsync(initModel); //Assert LogTestInfo(initModel, act); Assert.True(act.Succeeded); Assert.NotNull(act.Result); }
public async Task IntiFlowTransition_WithExistingTransition_MustInitializeAndWarn() { //Arrange var stateManager = new MockState().MockStateManager(); var flowManager = new ManagerFactory().GetFlowManager(stateManager); var flowType = MockData.GetFlowTypes()[0]; var reviewState = MockData.GetFlowStates() .ToList().FirstOrDefault(x => x.Name == "Review"); var closeState = MockData.GetFlowStates() .ToList().FirstOrDefault(x => x.Name == "Close"); var initModel = new InitFlowTransitionModel() { Name = "RejectTest", Title = "RejectTest", SourceId = reviewState.Id, DestinationId = closeState.Id, TransitionType = FlowTransitionTypes.Reject, TypeId = flowType.Id }; //Act var act = await flowManager.InitFlowTransitionAsync(initModel); //Assert LogTestInfo(initModel, act); Assert.True(act.Succeeded); Assert.NotEmpty(act.Warns); }
public async Task <IActionResult> Create(InitFlowTransitionModel model) { var result = await FlowManager.InitFlowTransitionAsync(model); HandleFlowResult(result); return(RedirectToAction(nameof(Create), new { flowStateId = model.SourceId })); }
public async Task <FlowResult <FlowTransition> > InitFlowTransitionAsync(InitFlowTransitionModel initModel) { var result = await HandleRequestAsync(new InitFlowTransitionRequest(TransitionService), initModel); return(result); }