private void btnShowOpenFilesDialog_Click(object sender, EventArgs e) { var id = (int?)cmbDefaultEBFileSetting.SelectedItem?.SubItems[1].Value ?? -1; if (id == -1) { return; } try { this.ButtonClicked(btnShowOpenFilesDialog); var setting = GetUseableEBFileSettings().First(x => x.Id == id); var path = setting.FilePath; // GetInitilaDirectory(); var fileNames = new List <string>(); if (!LimitAccessFolder ? !ShowOpenFileDialog(path, out fileNames, multiSelect: true, index: 1) : !ShowRootFolderBrowserDialog(ApplicationControl.RootPath, out fileNames, FolderBrowserType.SelectMultiFile)) { return; } var source = GetBilindingSource(); foreach (var file in fileNames) { if (source.Any(x => x.FilePath == file)) { continue; } source.Add(new ImportItem(id, file)); } grdImportItems.DataSource = new BindingSource(source, null); foreach (var row in grdImportItems.Rows) { var item = row.DataBoundItem as ImportItem; if (item == null || !item.Executed) { continue; } row[CellName(nameof(ImportItem.DoImport))].Enabled = false; row[CellName(nameof(ImportItem.EBFileSettingId))].Enabled = false; } var ids = source.Where(x => x.DoImport).Select(x => x.EBFileSettingId).Distinct().ToArray(); datYear.Enabled = EBFileSettings.Any(x => x.RequireYear == 1 && ids.Contains(x.Id)); Modified = true; ClearStatusMessage(); } catch (Exception ex) { Debug.Fail(ex.ToString()); NLogHandler.WriteErrorLog(this, ex, SessionKey); } }
private void grdImportItems_CellEditedFormattedValueChanged(object sender, CellEditedFormattedValueChangedEventArgs e) { if (!(e.CellName == CellName(nameof(ImportItem.DoImport)) || e.CellName == CellName(nameof(ImportItem.EBFileSettingId)))) { return; } grdImportItems.CommitEdit(); var settingIds = grdImportItems.Rows .Select(x => x.DataBoundItem as ImportItem) .Where(x => x.DoImport) .Select(x => x.EBFileSettingId).Distinct().ToArray(); var requireYear = EBFileSettings.Any(x => x.IsUseable == 1 && x.RequireYear == 1 && settingIds.Contains(x.Id)); datYear.Enabled = requireYear; }
private List <EBFileSetting> GetUseableEBFileSettings() => EBFileSettings .Where(x => x.IsUseable == 1) .OrderBy(x => x.DisplayOrder).ToList();