/// <summary> /// Sets time window attributes with specified names in the specified attributes dictionary. /// </summary> /// <param name="dictionary">The dictionary to set attributes for.</param> /// <param name="window">The time window to get attribute values from.</param> /// <param name="plannedDate">The date/time when time window should be applied.</param> /// <param name="timeWindowStartAttribute">The name of the time window start /// attribute.</param> /// <param name="timeWindowEndAttribute">The name of the time window end /// attribute.</param> public static void SetTimeWindow( this AttrDictionary dictionary, TimeWindow window, DateTime plannedDate, string timeWindowStartAttribute, string timeWindowEndAttribute) { Debug.Assert(dictionary != null); Debug.Assert(window != null); Debug.Assert(!string.IsNullOrEmpty(timeWindowStartAttribute)); Debug.Assert(!string.IsNullOrEmpty(timeWindowEndAttribute)); if (window.IsWideOpen) { dictionary.Set(timeWindowStartAttribute, null); dictionary.Set(timeWindowEndAttribute, null); return; } // Time window is not wide-open so we apply it to the specified planned date and // attribute values in the dictionary. var dates = window.ToDateTime(plannedDate); var from = dates.Item1.Value; dictionary.Add( timeWindowStartAttribute, GPObjectHelper.DateTimeToGPDateTime(from)); var to = dates.Item2.Value; dictionary.Add( timeWindowEndAttribute, GPObjectHelper.DateTimeToGPDateTime(to)); }