private void SetVersionComboItems() { const int expectedVersions = 5; this.taskVersionCombo.BeginUpdate(); this.taskVersionCombo.Items.Clear(); string[] versions = EditorProperties.Resources.TaskCompatibility.Split('|'); if (versions.Length != expectedVersions) { throw new ArgumentOutOfRangeException("Locale specific information about supported Operating Systems is insufficient."); } int max = (this.TaskService == null) ? expectedVersions - 1 : TaskService.LibraryVersion.Minor; TaskCompatibility comp = (td != null) ? td.Settings.Compatibility : TaskCompatibility.V1; TaskCompatibility lowestComp = (td != null) ? td.LowestSupportedVersion : TaskCompatibility.V1; switch (comp) { case TaskCompatibility.AT: for (int i = max; i > 1; i--) { this.taskVersionCombo.Items.Add(new ComboItem(versions[i], i, comp >= lowestComp)); } this.taskVersionCombo.SelectedIndex = this.taskVersionCombo.Items.Add(new ComboItem(versions[0], 0)); break; default: for (int i = max; i > 0; i--) { this.taskVersionCombo.Items.Add(new ComboItem(versions[i], i, comp >= lowestComp)); } this.taskVersionCombo.SelectedIndex = this.taskVersionCombo.Items.IndexOf((int)comp); break; } this.taskVersionCombo.EndUpdate(); }
public static string ToFriendlyString(TaskCompatibility tc) { switch (tc) { case TaskCompatibility.AT: return("AT command"); case TaskCompatibility.V1: return("Windows Server™ 2003, Windows® XP, or Windows® 2000"); case TaskCompatibility.V2: return("Windows Vista™, Windows Server™ 2008"); case TaskCompatibility.V2_1: return("Windows® 7, Windows Server™ 2008 R2"); case TaskCompatibility.V2_2: return("Windows® 8.x, Windows Server™ 2012"); case TaskCompatibility.V2_3: return("Windows® 10, Windows Server™ 2016"); default: return(""); } }
internal TSNotSupportedException(TaskCompatibility minComp) { min = minComp; StackTrace stackTrace = new StackTrace(); StackFrame stackFrame = stackTrace.GetFrame(2); MethodBase methodBase = stackFrame.GetMethod(); myMessage = string.Format("{0}.{1} is not supported on {2}", methodBase.DeclaringType.Name, methodBase.Name, this.LibName); }
internal TSNotSupportedException(TaskCompatibility minComp) { min = minComp; var stackTrace = new StackTrace(); var stackFrame = stackTrace.GetFrame(2); var methodBase = stackFrame.GetMethod(); myMessage = $"{methodBase.DeclaringType?.Name}.{methodBase.Name} is not supported on {LibName}"; }
private void SetVersionComboItems() { const int expectedVersions = 6; taskVersionCombo.BeginUpdate(); taskVersionCombo.Items.Clear(); string[] versions = EditorProperties.Resources.TaskCompatibility.Split('|'); if (versions.Length != expectedVersions) { throw new ArgumentOutOfRangeException("Locale specific information about supported Operating Systems is insufficient."); } int max = (TaskService == null) ? expectedVersions - 1 : Math.Min(TaskService.LibraryVersion.Minor, TaskService.HighestSupportedVersion.Minor); if (Environment.OSVersion.Version >= new Version(6, 2)) { using (var key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion")) versions[TaskService.LibraryVersion.Minor] = key.GetValue("ProductName", Environment.OSVersion).ToString(); } TaskCompatibility comp = td?.Settings.Compatibility ?? TaskCompatibility.V1; TaskCompatibility lowestComp = td?.LowestSupportedVersion ?? TaskCompatibility.V1; if (lowestComp == TaskCompatibility.V1 && task != null && task.Folder.Path != "\\") { lowestComp = TaskCompatibility.V2; } switch (comp) { case TaskCompatibility.AT: for (int i = max; i > 1; i--) { taskVersionCombo.Items.Add(new ComboItem(versions[i], i, comp >= lowestComp)); } taskVersionCombo.SelectedIndex = taskVersionCombo.Items.Add(new ComboItem(versions[0], 0)); break; default: for (int i = max; i > 0; i--) { taskVersionCombo.Items.Add(new ComboItem(versions[i], i, comp >= lowestComp)); } taskVersionCombo.SelectedIndex = taskVersionCombo.Items.IndexOf((int)comp); break; } taskVersionCombo.EndUpdate(); }
private void taskVersionCombo_SelectedIndexChanged(object sender, EventArgs e) { IsV2 = taskVersionCombo.SelectedIndex == -1 ? true : ((ComboItem)taskVersionCombo.SelectedItem).Version > 1; TaskCompatibility priorSetting = (td != null) ? td.Settings.Compatibility : TaskCompatibility.V1; if (!onAssignment && td != null && taskVersionCombo.SelectedIndex != -1) { td.Settings.Compatibility = (TaskCompatibility)((ComboItem)taskVersionCombo.SelectedItem).Version; } if ((onAssignment && task == null) || (sender != null && td != null && priorSetting > td.Settings.Compatibility)) { try { if (!onAssignment && td != null) { td.Validate(true); ReinitializeControls(); } } catch (InvalidOperationException ex) { var msg = new System.Text.StringBuilder(); if (ShowErrors) { msg.AppendLine(EditorProperties.Resources.Error_TaskPropertiesIncompatible); foreach (var item in ex.Data.Keys) { msg.AppendLine($"- {item} {ex.Data[item]}"); } } else { msg.Append(EditorProperties.Resources.Error_TaskPropertiesIncompatibleSimple); } MessageBox.Show(this, msg.ToString(), EditorProperties.Resources.TaskSchedulerName, MessageBoxButtons.OK, MessageBoxIcon.Error); taskVersionCombo.SelectedIndex = taskVersionCombo.Items.IndexOf((int)priorSetting); return; } } }
internal NotSupportedPriorToException(TaskCompatibility supportedVersion) : base(supportedVersion) { }
internal TSNotSupportedException(string message, TaskCompatibility minComp) { myMessage = message; min = minComp; }
/// <summary> /// Initializes a new instance of the <see cref="TSNotSupportedException"/> class. /// </summary> /// <param name="serializationInfo">The serialization information.</param> /// <param name="streamingContext">The streaming context.</param> protected TSNotSupportedException(SerializationInfo serializationInfo, StreamingContext streamingContext) : base(serializationInfo, streamingContext) { try { min = (TaskCompatibility)serializationInfo.GetValue("min", typeof(TaskCompatibility)); } catch { min = TaskCompatibility.V1; } }