/////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// public SolveInfoWrap(SolveInfo settings, UserSolveInfo userSettings) { Debug.Assert(settings != null); Debug.Assert(userSettings != null); if (userSettings.SolverSettingsInfo == null) userSettings.SolverSettingsInfo = new UserSolverSettingsInfo(); // restrictions _InitRestrictions(settings, userSettings); // parameters _InitAttrParameters(settings, userSettings); // services _InitServices(settings); _settings = settings; _userSettings = userSettings; }
/////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// private void _InitRestrictions(SolveInfo settings, UserSolveInfo userSettings) { // user restrictions if (userSettings.SolverSettingsInfo.RestrictionsInfo == null) userSettings.SolverSettingsInfo.RestrictionsInfo = new UserRestrictionsInfo(); if (userSettings.SolverSettingsInfo.RestrictionsInfo.Restrictions == null) userSettings.SolverSettingsInfo.RestrictionsInfo.Restrictions = new List<RestrictionInfo>(); _userRestrictions = userSettings.SolverSettingsInfo.RestrictionsInfo.Restrictions; // default (read-only) restrictions if (settings.SolverSettingsInfo != null && settings.SolverSettingsInfo.RestrictionsInfo != null && settings.SolverSettingsInfo.RestrictionsInfo.Restrictions != null) { _defaultRestrictions = new List<RestrictionInfo>( settings.SolverSettingsInfo.RestrictionsInfo.Restrictions); } if (_defaultRestrictions == null) _defaultRestrictions = new List<RestrictionInfo>(); // fill merged names list _AddRestrictionNames(_defaultRestrictions); _AddRestrictionNames(_userRestrictions); }
private void _InitAttrParameters(SolveInfo settings, UserSolveInfo userSettings) { // user parameters if (userSettings.SolverSettingsInfo.AttributeParamsInfo == null) userSettings.SolverSettingsInfo.AttributeParamsInfo = new UserRouteAttrsInfo(); if (userSettings.SolverSettingsInfo.AttributeParamsInfo.AttributeParams == null) userSettings.SolverSettingsInfo.AttributeParamsInfo.AttributeParams = new List<RouteAttrInfo>(); _userParams = userSettings.SolverSettingsInfo.AttributeParamsInfo.AttributeParams; // default (read-only) parameters if (settings.SolverSettingsInfo != null && settings.SolverSettingsInfo.AttributeParamsInfo != null && settings.SolverSettingsInfo.AttributeParamsInfo.AttributeParams != null) { _defaultParams = new List<RouteAttrInfo>( settings.SolverSettingsInfo.AttributeParamsInfo.AttributeParams); } if (_defaultParams == null) _defaultParams = new List<RouteAttrInfo>(); // fill merged list _mergedParams = new List<RouteAttrInfo>(_userParams); foreach (RouteAttrInfo defParam in _defaultParams) { if (!String.IsNullOrEmpty(defParam.AttrName) && !String.IsNullOrEmpty(defParam.ParamName)) { RouteAttrInfo param = _FindAttrParameter(defParam.AttrName, defParam.ParamName, _mergedParams); if (param == null) _mergedParams.Add(defParam); } } }