public async Task <IEnumerable <FlowModel> > GetAll() { var result = await _unitOfWork.Flows.GetAll(); var flowList = new List <FlowModel>(); foreach (var entity in result) { var model = new FlowModel(); model.Id = entity.Id; model.Name = entity.Name; model.States = new List <FlowStateModel>(); var flowStates = await _unitOfWork.FlowStates.GetStatesByFlowId(model.Id); foreach (var flowState in flowStates) { var state = await _unitOfWork.States.Get(flowState.StateId); var stateModel = new FlowStateModel(); stateModel.StateId = state.Id; stateModel.Order = flowState.Order; stateModel.Name = state.Name; model.States.Add(stateModel); } flowList.Add(model); } return(flowList); }
public async void TaskNext() { var taskAggregate = new TaskAggregate(); taskAggregate.Id = Guid.NewGuid(); taskAggregate.Name = "Test"; var testFlow = new FlowModel { Id = Guid.NewGuid(), Name = "TestFlow" }; testFlow.States = new List <FlowStateModel>(); var state1 = new FlowStateModel(); state1.Name = "State1"; state1.Order = 1; state1.StateId = Guid.NewGuid(); testFlow.States.Add(state1); var state2 = new FlowStateModel(); state2.Name = "State2"; state2.Order = 2; state2.StateId = Guid.NewGuid(); testFlow.States.Add(state2); var state3 = new FlowStateModel(); state3.Name = "State3"; state3.Order = 3; state3.StateId = Guid.NewGuid(); testFlow.States.Add(state3); taskAggregate.AssignFlow(testFlow); taskAggregate.Next(); Assert.Same(taskAggregate.ActiveState, state2); }
private async Task <TaskAggregate> PrepareTaskAggregate(Guid taskId) { var task = await _unitOfWork.Tasks.Get(taskId); if (task.FlowId == null) { return(null); } var aggregate = new TaskAggregate(); aggregate.Id = taskId; aggregate.Name = task.Name; var flow = await _unitOfWork.Flows.Get((Guid)task.FlowId); var flowModel = new FlowModel { Id = flow.Id, Name = flow.Name }; flowModel.States = new List <FlowStateModel>(); var stateEntities = await _unitOfWork.FlowStates.GetStatesByFlowId(flow.Id); foreach (var entity in stateEntities) { var state = await _unitOfWork.States.Get(entity.StateId); var flowstate = new FlowStateModel { Name = state.Name, Order = entity.Order, StateId = state.Id }; flowModel.States.Add(flowstate); } aggregate.Flow = flowModel; aggregate.TaskHistory = new List <FlowStateModel>(); var historyEntity = await _unitOfWork.TaskHistories.GetByTaskId(taskId); foreach (var entity in historyEntity) { var state = await _unitOfWork.States.Get(entity.StateId); var flowstate = new FlowStateModel { Name = state.Name, Order = entity.Order, StateId = state.Id }; aggregate.TaskHistory.Add(flowstate); } if (aggregate.TaskHistory.Any()) { aggregate.ActiveState = aggregate.TaskHistory.MaxBy(x => x.Order).First(); } return(aggregate); }
public async Task <FlowModel> Get(Guid id) { var result = await _unitOfWork.Flows.Get(id); var model = new FlowModel(); model.Id = result.Id; model.Name = result.Name; model.States = new List <FlowStateModel>(); var flowStates = await _unitOfWork.FlowStates.GetStatesByFlowId(model.Id); foreach (var flowState in flowStates) { var state = await _unitOfWork.States.Get(flowState.StateId); var stateModel = new FlowStateModel(); stateModel.StateId = state.Id; stateModel.Order = flowState.Order; stateModel.Name = state.Name; model.States.Add(stateModel); } return(model); }
private void AddHistory(FlowStateModel state) { TaskHistory.Add(state); }