private async Task <WorkflowTransition> HydrateForGet(WorkflowTransition transition) { try { transition = await HydrateForGetAndSave(transition); var transFunctions = await _workflowTransitionFunctionRepository.Search( new WorkflowTransitionFunctionSearchRequest() { TransitionId = transition.Id.ToString() }); transition.PreConditions = transFunctions .Where(f => f.Function.Type == WorkflowFunctions.WorkflowFunctionTypes.PreCondition).ToList(); transition.Validations = transFunctions .Where(f => f.Function.Type == WorkflowFunctions.WorkflowFunctionTypes.Validation).ToList(); transition.PostFunctions = transFunctions .Where(f => f.Function.Type == WorkflowFunctions.WorkflowFunctionTypes.PostFunction).ToList(); if (transition.ScreenIds != null) { transition.Screens = await _screenRepository.Find(transition.ScreenIds); } return(transition); } catch (Exception ex) { throw ex; } }
public async Task <IActionResult> Post([FromBody] WorkflowTransition item) { return(await FunctionWrapper.ExecuteFunction(this, async() => { return await _workflowTransitionRepository.Add(item); })); }
public async Task <WorkflowTransition> Update(WorkflowTransition transition) { var filter = Builders <WorkflowTransition> .Filter.Eq("Id", transition.Id); try { if (string.IsNullOrEmpty(transition.Name) || transition.WorkflowId == ObjectId.Empty || transition.FromNodeId == ObjectId.Empty || transition.ToNodeId == ObjectId.Empty) { throw new ApplicationException("Required fields missing."); } transition = await HydrateForSave(transition); await _context.WorkflowTransitions.ReplaceOneAsync(filter, transition); return(await Get(transition.Id)); } catch (Exception ex) { throw ex; } }
public async Task <IActionResult> Put(string id, [FromBody] WorkflowTransition item) { return(await FunctionWrapper.ExecuteFunction(this, async() => { item.Id = new ObjectId(id); return await _workflowTransitionRepository.Update(item); })); }
private async Task <WorkflowTransition> HydrateForSave(WorkflowTransition transition) { try { transition = await HydrateForGetAndSave(transition); return(transition); } catch (Exception ex) { throw ex; } }
private async Task <WorkflowTransition> HydrateForGetAndSave(WorkflowTransition transition) { try { var fromNode = await _workflowNodeRepository.Get(transition.FromNodeId); var toNode = await _workflowNodeRepository.Get(transition.ToNodeId); if (fromNode == null || toNode == null) { throw new ApplicationException("Cannot find node."); } transition.FromNode = fromNode; transition.ToNode = toNode; return(transition); } catch (Exception ex) { throw ex; } }
public async Task <WorkflowTransition> Add(WorkflowTransition transition) { try { if (string.IsNullOrEmpty(transition.Name) || transition.WorkflowId == ObjectId.Empty || transition.FromNodeId == ObjectId.Empty || transition.ToNodeId == ObjectId.Empty) { throw new ApplicationException("Required fields missing."); } transition = await HydrateForSave(transition); await _context.WorkflowTransitions.InsertOneAsync(transition); return(await Get(transition.Id)); } catch (Exception ex) { throw ex; } }