/// <summary> /// Generates set of random names and associated locations. This routine allows the randomizer routines to display a grid with the output before returning with the result. /// </summary> /// <param name="numRows">Number of names to generate.</param> /// <param name="rdr">RandomNamesAndLocationsDataRequest object containing the definition to use for the name and location generation.</param> /// <param name="showInstalledDatabaseProvidersOnly">Show list of installed data providers only if the user is shown an output grid and wants to manually export the list to external storage.</param> /// <param name="defaultOutputDatabaseType">Default database to show if user is prompted for connection information.</param> /// <param name="defaultOutputDatabaseConnectionString">Default connection string to show if user is prompted for connection information.</param> /// <param name="defaultDataGridExportFolder">Default export file folder to use if user is exporting data from a grid displaying the random names/locations output.</param> /// <returns>ADO.NET DataTable containing the set of random names and locations.</returns> public DataTable CreateRandomNamesAndLocationsDataTable(int numRows, RandomNamesAndLocationsDataRequest rdr, bool showInstalledDatabaseProvidersOnly, string defaultOutputDatabaseType, string defaultOutputDatabaseConnectionString, string defaultDataGridExportFolder) { DataTable dt = new DataTable(); DataListProcessor _appProcessor = new DataListProcessor(); try { _appProcessor.ShowInstalledDatabaseProvidersOnly = showInstalledDatabaseProvidersOnly; _appProcessor.DefaultOutputDatabaseType = defaultOutputDatabaseType; _appProcessor.DefaultOutputDatabaseConnectionString = defaultOutputDatabaseConnectionString; _appProcessor.GridExportFolder = defaultDataGridExportFolder; dt = _appProcessor.GetRandomNamesList(rdr, numRows, false, //no output to xml file rdr.RandomDataXmlFilesFolder, rdr.ListName, false); //no output to preview grid } catch (System.Exception ex) { _msg.Length = 0; _msg.Append("Error in CreateRandomNamesAndLocationsDataTable routine.\r\n"); _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex)); throw new System.Exception(_msg.ToString()); } finally { ; } return(dt); }
//application routines /// <summary> /// Retrieves a DataTable containing a list of random names. /// </summary> /// <param name="rdr">Object containing the constraints to be used in generating random names.</param> /// <param name="numEntriesToGenerate">Number of name entries to generate</param> /// <param name="outputToXmlFile">Set to true to output to an XML file.</param> /// <param name="xmlOutputFolder">Path to XML output folder.</param> /// <param name="listName">Name given to the list of names. This name will serveras the DataTable.TableName value.</param> /// <param name="outputToGrid">Set to true to output the names to a DataViewGrid.</param> /// <returns>DataTable populated with rows containing the generated names.</returns> public DataTable GetRandomNamesList(RandomNamesAndLocationsDataRequest rdr, int numEntriesToGenerate, bool outputToXmlFile, string xmlOutputFolder, string listName, bool outputToGrid) { RandomDataProcessor rdp = new RandomDataProcessor(rdr.DatabaseFilePath, rdr.DatabasePassword, rdr.RandomDataXmlFilesFolder); string xmlFileName = string.Empty; Stopwatch sw = new Stopwatch(); DataTable dtRData = null; try { sw.Start(); //rdr.SaveToXmlFile(@"c:\temp\CountryRequest.xml"); rdp.CountryRandomDataSpec = rdr; PFList <RandomName> rn = rdp.GenerateRandomNameList(numEntriesToGenerate); //rn.SaveToXmlFile(@"c:\temp\RandomNamesPfList.xml"); dtRData = rdp.ConvertRandomNameListToDataTable(rn); dtRData.TableName = listName; //for (int c = 0; c < dtRData.Columns.Count; c++) //{ // //workaround: RowNum column name causes Oracle ODBC and OLEDB drivers to fail // if (dtRData.Columns[c].ColumnName == "RowNum") // dtRData.Columns[c].ColumnName="NameRowNum"; //} if (outputToXmlFile) { string outputFile = string.Empty; if (xmlOutputFolder.Trim() == string.Empty) { outputFile = Path.Combine(_defaultRandomDataUserXmlFilesFolder, listName + ".xml"); } else { outputFile = Path.Combine(xmlOutputFolder, listName + ".xml"); } XMLFileOutputProcessor xout = new XMLFileOutputProcessor(outputFile, true); xout.XMLOutputType = enXMLOutputType.DataPlusSchema; xout.WriteDataToOutput(dtRData); //save data definition to an xml file if (xmlOutputFolder.Trim() == string.Empty) { outputFile = Path.Combine(_defaultRandomDataUserXmlFilesFolder, listName + ".nlistdef"); } else { outputFile = Path.Combine(xmlOutputFolder, listName + ".nlistdef"); } rdr.SaveToXmlFile(outputFile); } sw.Stop(); _msg.Length = 0; _msg.Append(Environment.NewLine); _msg.Append("Random name list generation finished."); _msg.Append(Environment.NewLine); _msg.Append("Elapsed time for name list generation: "); _msg.Append(sw.FormattedElapsedTime); _msg.Append(Environment.NewLine); WriteToMessageLog(_msg.ToString()); if (outputToGrid) { PFDataOutputGrid.DataOutputGridProcessor grid = new PFDataOutputGrid.DataOutputGridProcessor(); grid.ShowInstalledDatabaseProvidersOnly = this.ShowInstalledDatabaseProvidersOnly; grid.DefaultOutputDatabaseType = this.DefaultOutputDatabaseType; grid.DefaultOutputDatabaseConnectionString = this.DefaultOutputDatabaseConnectionString; if (_gridExportFolder != _defaultGridExportFolder) { grid.DefaultGridExportFolder = _gridExportFolder; } else { grid.DefaultGridExportFolder = Path.Combine(_defaultGridExportFolder, "NamesAndLocations"); } grid.GridColumnFilters.Add(new PFDataOutputGrid.GridColumnFilter("NameRowNum", PFDataOutputGrid.enFilterType.NumRangeColumnFilter)); grid.GridColumnFilters.Add(new PFDataOutputGrid.GridColumnFilter("Country", PFDataOutputGrid.enFilterType.ComboBoxColumnFilter)); grid.GridColumnFilters.Add(new PFDataOutputGrid.GridColumnFilter("NameType", PFDataOutputGrid.enFilterType.ComboBoxColumnFilter)); grid.GridColumnFilters.Add(new PFDataOutputGrid.GridColumnFilter("City", PFDataOutputGrid.enFilterType.ComboBoxColumnFilter)); grid.GridColumnFilters.Add(new PFDataOutputGrid.GridColumnFilter("StateProvince", PFDataOutputGrid.enFilterType.ComboBoxColumnFilter)); grid.GridColumnFilters.Add(new PFDataOutputGrid.GridColumnFilter("StateProvinceName", PFDataOutputGrid.enFilterType.ComboBoxColumnFilter)); grid.WriteDataToGrid(dtRData); } } catch (System.Exception ex) { _msg.Length = 0; _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex)); WriteToMessageLog(_msg.ToString()); AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog); } finally { if (sw.StopwatchIsRunning) { sw.Stop(); } } return(dtRData); }
public void ColSpecForm() { DataTable dt = null; TEST_DataTableRandomizer dtr = null; string dbConnStr = string.Empty; DatabasePlatform dbPlat = DatabasePlatform.Unknown; PFDatabase db = null; PFList <DataTableRandomizerColumnSpec> colSpecs = null; RandomNamesAndLocationsDataRequest randomizerNameSpecs = null; try { _msg.Length = 0; _msg.Append("ColSpecForm started ...\r\n"); _messageLog.WriteLine(_msg.ToString()); dbPlat = DatabasePlatform.SQLServerCE35; db = GetPFDatabaseObject(dbPlat); db.ConnectionString = GetConnectionString(dbPlat); randomizerNameSpecs = RandomNamesAndLocationsDataRequest.LoadFromXmlFile(@"C:\Testfiles\Randomizer\CountryRequestPersonsOnly.xml"); db.OpenConnection(); string sqlQuery = "select * from RandomNameData"; //listTable = db.RunQueryDataTable(sqlQuery, CommandType.Text); dt = db.GetQueryDataSchema(sqlQuery, CommandType.Text); dtr = new TEST_DataTableRandomizer(); colSpecs = dtr.GetInitColSpecListFromDataTable(dt); PFRandomDataForms.DataTableRandomizerColumnSpecForm frm = new PFRandomDataForms.DataTableRandomizerColumnSpecForm(colSpecs); DialogResult res = frm.ShowDialog(); if (res == DialogResult.OK) { //time to do something _msg.Length = 0; _msg.Append(frm.ColSpecs.ToXmlString()); _messageLog.WriteLine(_msg.ToString()); } else { _msg.Length = 0; _msg.Append("Column spec edit cancelled."); _messageLog.WriteLine(_msg.ToString()); } } catch (System.Exception ex) { _msg.Length = 0; _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex)); _messageLog.WriteLine(_msg.ToString()); AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog); } finally { _msg.Length = 0; _msg.Append("\r\n... ColSpecForm finished."); _messageLog.WriteLine(_msg.ToString()); } }
//properties //methods /// <summary> /// Generates set of random names and associated locations. /// </summary> /// <param name="numRows">Number of names to generate.</param> /// <param name="rdr">RandomNamesAndLocationsDataRequest object containing the definition to use for the name and location generation.</param> /// <returns>ADO.NET DataTable containing the set of random names and locations.</returns> public DataTable CreateRandomNamesAndLocationsDataTable(int numRows, RandomNamesAndLocationsDataRequest rdr) { return(CreateRandomNamesAndLocationsDataTable(numRows, rdr, false, string.Empty, string.Empty, string.Empty)); }