private void add_Button_Click(object sender, EventArgs e) { bool success = false; string errorMessage = "Please verify your parameters match the criteria"; //string message = ""; //List<QuickSetParameterData> param; //1. Parse out individual Parameters //2. Create Scan settings data //3. Create individual quickset data //4. ??? //5. Profit if (!string.IsNullOrWhiteSpace(name_TextBox.Text)) { var scanSettingsData = new ScanSettings(originalSize_ComboBox.SelectedValue.ToString(), originalSides_ComboBox.SelectedValue.ToString(), contentOrientation_ComboBox.SelectedValue.ToString(), imagePreview_ComboBox.SelectedValue.ToString()); var fileSettingsData = new FileSettings { FileType = new DataPair <string> { Key = fileType_ComboBox.SelectedValue.ToString(), Value = true }, Resolution = new DataPair <string>() { Key = resolution_ComboBox.SelectedValue.ToString(), Value = true } }; List <QuickSetParameterData> param = (List <QuickSetParameterData>)quickSetParameterDataBindingSource.List; //Validate Fields here //Add validation for AQuickSet addQuickSet; switch (quickSetType_ComboBox.SelectedValue.ToString()) { case "Email": _currentType = "Email"; if (EmailQuickSetData.Validate(param)) { string to = param[0].ParameterValue; string defaultFrom = param[1].ParameterValue; string fromUser = param[2].ParameterValue; addQuickSet = new EmailQuickSetData(fromUser, defaultFrom, to, name_TextBox.Text, _currentType, scanSettingsData, fileSettingsData); _quickSetList.QuickSetData.Key.Add(addQuickSet); _viewList.Add(new QuickSetTableData(addQuickSet.QName, addQuickSet.QType)); success = true; } break; case "Copy": _currentType = "Copy"; if (CopyQuickSetData.Validate(param)) { string copies = param[0].ParameterValue; addQuickSet = new CopyQuickSetData(copies, name_TextBox.Text, _currentType, scanSettingsData, fileSettingsData); _quickSetList.QuickSetData.Key.Add(addQuickSet); _viewList.Add(new QuickSetTableData(addQuickSet.QName, addQuickSet.QType)); success = true; } break; case "Folder": _currentType = "Folder"; if (STNFQuickSetData.Validate(param)) { List <string> folderPaths = param.Select(x => x.ParameterValue).ToList(); //string folderPath = param[0].ParameterValue; addQuickSet = new STNFQuickSetData(folderPaths, name_TextBox.Text, _currentType, scanSettingsData, fileSettingsData); _quickSetList.QuickSetData.Key.Add(addQuickSet); _viewList.Add(new QuickSetTableData(addQuickSet.QName, addQuickSet.QType)); success = true; } break; case "SharePoint": _currentType = "SharePoint"; if (STSharePointQuickSetData.Validate(param)) { string path = param[0].ParameterValue; addQuickSet = new STSharePointQuickSetData(path, name_TextBox.Text, _currentType, scanSettingsData, fileSettingsData); _quickSetList.QuickSetData.Key.Add(addQuickSet); _viewList.Add(new QuickSetTableData(addQuickSet.QName, addQuickSet.QType)); success = true; } break; case "USB": _currentType = "USB"; if (STUSBQuickSetData.Validate(param)) { addQuickSet = new STUSBQuickSetData(name_TextBox.Text, _currentType, scanSettingsData, fileSettingsData); _quickSetList.QuickSetData.Key.Add(addQuickSet); _viewList.Add(new QuickSetTableData(addQuickSet.QName, addQuickSet.QType)); success = true; } break; case "Fax": _currentType = "Fax"; if (ScanFaxQuickSetData.Validate(param)) { string number = param[0].ParameterValue; addQuickSet = new ScanFaxQuickSetData(number, name_TextBox.Text, _currentType, scanSettingsData, fileSettingsData); _quickSetList.QuickSetData.Key.Add(addQuickSet); _viewList.Add(new QuickSetTableData(addQuickSet.QName, addQuickSet.QType)); success = true; } break; case "FTP": _currentType = "FTP"; if (FTPQuickSetData.Validate(param)) { List <string> ftpPaths = param.Select(x => x.ParameterValue).ToList(); addQuickSet = new FTPQuickSetData(ftpPaths, name_TextBox.Text, _currentType, scanSettingsData, fileSettingsData); _quickSetList.QuickSetData.Key.Add(addQuickSet); _viewList.Add(new QuickSetTableData(addQuickSet.QName, addQuickSet.QType)); success = true; } break; default: throw new Exception("Quick Set Type is unhandled, failed to create."); } } else { success = false; errorMessage = "A quick set name is required."; } if (!success) { MessageBox.Show(errorMessage, "Parameter Format", MessageBoxButtons.OK, MessageBoxIcon.Warning); } quickSetTableDataBindingSource.ResetBindings(false); if (_viewList.Count > 0) { save_changes.Enabled = true; } }