Exemple #1
0
        /// <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);
        }
Exemple #2
0
        //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());
            }
        }
Exemple #4
0
        //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));
        }