예제 #1
0
        /// <summary>
        /// Creates a new authorise reference strategy.
        /// </summary>
        /// <param name="typeName"></param>
        /// <returns></returns>
        public IAuthoriseReferenceStrategy NewReferenceAuthoriser(string typeName1, string propertyName1, string typeName2, string propertyName2)
        {
            IAuthoriseReferenceStrategy strategy = null;

            using (LogGroup logGroup = LogGroup.StartDebug("Creating a new authorise reference strategy."))
            {
                LogWriter.Debug("Type name 1: " + typeName1);
                LogWriter.Debug("Property name 1: " + propertyName1);
                LogWriter.Debug("Type name 2: " + typeName2);
                LogWriter.Debug("Property name 2: " + propertyName2);

                AuthoriseReferenceStrategyLocator locator = new AuthoriseReferenceStrategyLocator(StrategyState.Strategies);

                StrategyInfo strategyInfo = locator.Locate(typeName1, propertyName1, typeName2, propertyName2);

                if (strategyInfo != null)
                {
                    strategy = strategyInfo.New <IAuthoriseReferenceStrategy>();
                }
            }

            return(strategy);
        }