private void dgHyperionAddress_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0 && e.ColumnIndex == dgHyperionAddress.Columns["clmnProtocol"].Index)
            {
                var columnValue = dgHyperionAddress.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
                if (columnValue != null)
                {
                    var serverProtocol = (HyperionServerProtocol)columnValue;
                    int newPortValue   = -1;
                    switch (serverProtocol)
                    {
                    case HyperionServerProtocol.FLAT_BUFFERS:
                        newPortValue = HyperionServer.BuildUsingDefaultFbsSettings().Port;
                        break;

                    case HyperionServerProtocol.PROTOCOL_BUFFERS:
                        newPortValue = HyperionServer.BuildUsingDefaultProtoSettings().Port;
                        break;

                    default:
                        throw new NotImplementedException($"Hyperion server protocol {serverProtocol} is not supported yet");
                    }
                    dgHyperionAddress.Rows[e.RowIndex].Cells["clmnPort"].Value = newPortValue; // Change port according to protocol
                }
            }
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            bool validServerFound = false;
            bool invalidPriority  = false;

            // Validate server rows using IP address default value
            for (int i = 0; i < TaskConfiguration.HyperionServers.Count; i++)
            {
                HyperionServer server = TaskConfiguration.HyperionServers[i];
                if (server.Priority < HyperionServer.MIN_PRIORITY || server.Priority > HyperionServer.MAX_PRIORITY)
                {
                    invalidPriority = true;
                }
                if (!_defaultServerConfiguration.Host.Equals(server.Host))
                {
                    validServerFound = true;
                    break;
                }
            }
            // Check if all rows are invalid
            if (!validServerFound)
            {
                MessageBox.Show("All Hyperion server host names are invalid. Please sepcify a valid Hyperion server configuraion.");
                return;
            }
            if (invalidPriority)
            {
                MessageBox.Show("Invalid priority value found. Priority should be set within the range 100-199.");
                return;
            }

            TaskConfiguration.HyperionServers.RemoveAll(server => _defaultServerConfiguration.Host.Equals(server.Host));
            SaveRequested = true;
            Close();
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            bool validServerFound = false;

            // Validate server rows using IP address default value
            for (int i = 0; i < TaskConfiguration.HyperionServers.Count; i++)
            {
                HyperionServer server = TaskConfiguration.HyperionServers[i];
                if (!_defaultServerConfiguration.Host.Equals(server.Host))
                {
                    validServerFound = true;
                    break;
                }
            }
            // Check if all rows are invalid
            if (!validServerFound)
            {
                MessageBox.Show("All Hyperion server host names are invalid. Please sepcify a valid Hyperion server configuraion.");
                return;
            }

            TaskConfiguration.HyperionServers.RemoveAll(server => _defaultServerConfiguration.Host.Equals(server.Host));
            SaveRequested = true;
            Close();
        }
 public ServerPropertiesForm(HyperionTaskConfiguration taskConfiguration)
 {
     this._defaultServerConfiguration = HyperionServer.BuildUsingDefaultSettings();
     this.TaskConfiguration           = taskConfiguration;
     InitializeComponent();
     this.Text = $"{this.Text} - {taskConfiguration.Id}";
     InitFormFields();
 }
        public ServerPropertiesForm(HyperionTaskConfiguration taskConfiguration)
        {
            this._defaultServerConfiguration = HyperionServer.BuildUsingDefaultFbsSettings();
            this.TaskConfiguration           = taskConfiguration;
            InitializeComponent();
            this.Text = $"{this.Text} - {taskConfiguration.Id}";
            var protocolColumn = (DataGridViewComboBoxColumn)this.dgHyperionAddress.Columns.GetFirstColumn(DataGridViewElementStates.Visible);

            protocolColumn.DataSource = Enum.GetValues(typeof(HyperionServerProtocol));
            protocolColumn.ValueType  = typeof(HyperionServerProtocol);
            InitFormFields();
        }