/// <summary>
        /// The buttonLogin Click event handler.
        /// </summary>
        /// <param name="sender">The sender object.</param>
        /// <param name="e">The event args.</param>
        private async void ButtonLoginClick(object sender, EventArgs e)
        {
            labelMessage.Text = string.Empty;

            var ip     = textBoxIp.Text;
            var user   = textBoxUsername.Text;
            var passwd = textBoxPassword.Text;

            var retVal = await VxUtils.Init(ip, user, passwd);

            if (retVal == Results.Value.SdkLicenseGracePeriodActive)
            {
                var message = string.Format(Resources.LicenseWarningMessage, VxUtils.ExpirationDate.ToString(Resources.DateTimeFormat));
                MessageBox.Show(message, Resources.LicenseWarningHeader, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else if (retVal != Results.Value.OK)
            {
                if (retVal == Results.Value.SdkLicenseGracePeriodExpired)
                {
                    labelMessage.Text = Resources.LicenseLoginErrorMessage;
                }
                else
                {
                    labelMessage.Text = Resources.LoginErrorMessage + retVal;
                }

                return;
            }

            await VxUtils.GetMonitors();

            await VxUtils.GetCameras();

            this.ListBoxMonitorsSelectedIndexChanged(this, null);
        }
        /// <summary>
        /// The button4X4 Click event handler.
        /// </summary>
        /// <param name="sender">The sender object.</param>
        /// <param name="e">The event args.</param>
        private async void Button4X4Click(object sender, EventArgs e)
        {
            var monitor = listBoxMonitors.SelectedItem as Monitor;

            if (monitor == null)
            {
                labelMessage.Text = Resources.EnsureMonitorSelected;
                return;
            }

            await VxUtils.ChangeLayout(monitor, VxUtils.VxLayout.Layout4X4);

            UpdateCellsList(16);
        }
        /// <summary>
        /// The buttonShowVideo Click event handler.
        /// </summary>
        /// <param name="sender">The sender object.</param>
        /// <param name="e">The event args.</param>
        private async void ButtonShowVideoClick(object sender, EventArgs e)
        {
            var monitor = listBoxMonitors.SelectedItem as Monitor;
            var cellIdx = listBoxCells.SelectedIndex;
            var camera  = listBoxCameras.SelectedItem as DataSource;
            var time    = checkBoxLive.Checked ? default(DateTime) : dateTimePickerRecorded.Value;

            if (monitor == null || cellIdx == -1 || camera == null)
            {
                labelMessage.Text = Resources.EnsureCellAndCameraAreSelected;
                return;
            }

            labelMessage.Text = string.Empty;
            await VxUtils.PlayVideoInCell(monitor, cellIdx, camera, time);
        }