예제 #1
0
        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;
            }
        }