public WinQueryResults(
            int secondsToAnalyze,
            int startSecond,
            int hashTables,
            int hashKeys,
            int threshold,
            IStride queryStride,
            ITagService tagService,
            IModelService modelService,
            IFingerprintQueryBuilder fingerprintQueryBuilder)
        {
            InitializeComponent();
            Icon = Resources.Sound;
            this.secondsToAnalyze = secondsToAnalyze;
            this.startSecond = startSecond;
            this.queryStride = queryStride;
            this.hashTables = hashTables;
            this.hashKeys = hashKeys;
            this.threshold = threshold;
            this.tagService = tagService;
            this.modelService = modelService;
            this.fingerprintQueryBuilder = fingerprintQueryBuilder;

            // ReSharper disable PossibleNullReferenceException
            _dgvResults.Columns.Add(ColSongName, "Initial Song");
            _dgvResults.Columns[ColSongName].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            _dgvResults.Columns.Add(ColResultName, "Result Song");
            _dgvResults.Columns[ColResultName].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            _dgvResults.Columns.Add(ColResult, "ISRC Match");
            _dgvResults.Columns[ColResult].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            _dgvResults.Columns.Add(ColHammingAvg, "Hamming Distance");
            _dgvResults.Columns[ColHammingAvg].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            _dgvResults.Columns.Add(ColNumberOfCandidates, "Number of candidates");
            _dgvResults.Columns[ColNumberOfCandidates].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            _dgvResults.Columns.Add(ColISRC, "Result ISRC");
            _dgvResults.Columns[ColISRC].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

            // ReSharper restore PossibleNullReferenceException
            _btnExport.Enabled = false;
        }
        public WinCheckHashBins(IFingerprintQueryBuilder queryBuilder, ITagService tagService, IModelService modelService, IExtendedAudioService audioService)
        {
            this.queryBuilder = queryBuilder;
            this.tagService = tagService;
            this.modelService = modelService;
            this.audioService = audioService;

            InitializeComponent();

            Icon = Resources.Sound;
            AddConnectionStringsToComboBox();

            _cmbAlgorithm.SelectedIndex = (int)hashAlgorithm;

            string[] items = Enum.GetNames(typeof(StrideType));

            _cmbStrideType.Items.AddRange(items.ToArray<object>());
            _cmbStrideType.SelectedIndex = 3;

            switch (_cmbAlgorithm.SelectedIndex)
            {
                case (int)HashAlgorithm.LSH:
                    _gbMinHash.Enabled = true;
                    _gbNeuralHasher.Enabled = false;
                    break;
                case (int)HashAlgorithm.NeuralHasher:
                    _gbMinHash.Enabled = false;
                    _gbNeuralHasher.Enabled = true;
                    break;
                case (int)HashAlgorithm.None:
                    _gbMinHash.Enabled = false;
                    _gbNeuralHasher.Enabled = false;
                    break;
            }

            _gbQueryMicrophoneBox.Enabled = audioService.IsRecordingSupported;
        }