private IList <IRequirement> getRequirements(IProcessExecutionContext executionContext, bool useCache) { try { IList <IRequirement> registeredRequirements = new List <IRequirement>(); var requirements = DataConnector.GetAllRequirements(executionContext.DataService); var waiverRoles = DataConnector.GetAllRequirementWaiverRoles(executionContext.DataService); foreach (var requirement in requirements) { ILogicEvaluatorType evaluatorType = this.EvaluatorTypeFactory.BuildEvaluatorType(executionContext, requirement.EvaluatorTypeId, useCache); registeredRequirements.Add( RequirementFactory.CreateRequirement( executionContext, requirement as IRecordPointer <Guid>, requirement.Name, requirement.TypeFlag ?? eRequirementTypeFlags.Validation, requirement.TransactionTypeId, evaluatorType, requirement.RequirementParameters, waiverRoles.Where(r => r.TransactionRequirementId != null && r.TransactionRequirementId.Id == requirement.Id).Select(r => r.RoleId), useCache)); } return(registeredRequirements); } catch (Exception) { throw; } }