Example #1
0
        public static ParameterSettings AddParameterLinks(this ParameterSettings parameterSettings, Type type, IEnumerable <IParameterLink> parameterLinks, bool merge = true)
        {
            if (parameterSettings == null)
            {
                return(null);
            }

            if (type == null || parameterLinks == null || parameterLinks.Count() == 0)
            {
                return(parameterSettings);
            }

            ParameterSettings cloneSettings = parameterSettings.ShallowClone();

            cloneSettings.ParameterMaps = new List <ParameterMap>(parameterSettings.ParameterMaps);

            ParameterMap parameterMap = cloneSettings.ParameterMap(type);

            if (parameterMap == null)
            {
                cloneSettings.ParameterMaps.Add(new ParameterMap {
                    Type = type, ParameterLinks = new List <IParameterLink>(parameterLinks)
                });
            }
            else
            {
                cloneSettings.ParameterMaps.Remove(parameterMap);
                cloneSettings.ParameterMaps.Add(parameterMap.AddParameterLinks(parameterLinks, merge));
            }

            return(cloneSettings);
        }
        public static ParameterSettings AddParameterMaps(this ParameterSettings parameterSettings, IEnumerable <ParameterMap> parameterMaps, bool merge = true)
        {
            if (parameterSettings == null)
            {
                return(null);
            }

            if (parameterMaps == null || parameterMaps.Count() == 0)
            {
                return(parameterSettings);
            }

            ParameterSettings cloneSettings = parameterSettings.ShallowClone();

            if (cloneSettings.ParameterMaps == null)
            {
                cloneSettings.ParameterMaps = new List <ParameterMap>();
            }
            else
            {
                cloneSettings.ParameterMaps = new List <ParameterMap>(cloneSettings.ParameterMaps);
            }

            foreach (ParameterMap parameterMap in parameterMaps)
            {
                ParameterMap cloneMap = cloneSettings.ParameterMaps.Find(x => parameterMap.Type == x.Type);
                if (cloneMap == null)
                {
                    cloneSettings.ParameterMaps.Add(parameterMap);
                }
                else
                {
                    if (merge)
                    {
                        cloneSettings.ParameterMaps.Add(cloneMap.AddParameterLinks(parameterMap.ParameterLinks, true));
                    }
                    else
                    {
                        cloneSettings.ParameterMaps.Add(parameterMap);
                    }

                    cloneSettings.ParameterMaps.Remove(cloneMap);
                }
            }

            return(cloneSettings);
        }
Example #3
0
        public static ParameterMap ParameterMap(Type type, IEnumerable <IParameterLink> parameterLinks = null)
        {
            if (type == null)
            {
                return(null);
            }

            ParameterMap parameterMap = new ParameterMap {
                Type = type
            };

            if (parameterLinks != null)
            {
                parameterMap = parameterMap.AddParameterLinks(parameterLinks);
            }

            return(parameterMap);
        }