Example #1
0
 /// <summary>
 /// prints number of rows for each table in dataset.
 /// </summary>
 /// <param name="pnMcf"></param>
 private static void DumpInfo(McfDataSet pnMcf)
 {
     for (int i = 0; i < pnMcf.Tables.Count; i++)
     {
         Logger.WriteLine(pnMcf.Tables[i].TableName + "  has " + pnMcf.Tables[i].Rows.Count);
     }
 }
Example #2
0
 public McfDecodesConverter(PostgreSQL svr, McfDataSet mcf, DecodesDataSet decodes)
 {
     this.svr     = svr;
     this.mcf     = mcf;
     this.decodes = decodes;
     m_converter  = new UnitConversion(mcf, decodes, svr);
 }
Example #3
0
        public static void Import(string serverIP, string database, string siteFilter, string networkListName)
        {
            string      fn    = @"C:\temp\mcf.xml";
            Performance perf  = new Performance();
            var         pnMcf = new McfDataSet();

            if (File.Exists(fn) && File.GetLastWriteTime(fn).Date != DateTime.Now.Date)
            { // read existing file.
                Logger.WriteLine("Reading existing XML");
                pnMcf.ReadXml(fn);
            }
            else
            {
                Logger.WriteLine("Reading csv files from MCF");
                pnMcf = McfUtility.GetDataSetFromCsvFiles(Globals.LocalConfigurationDataPath);
                pnMcf.WriteXml(fn);
            }

            DumpInfo(pnMcf);

            Application.DoEvents();

            Logger.WriteLine(serverIP);

            var                 cs      = PostgreSQL.CreateADConnectionString(serverIP, database, "decodes");
            PostgreSQL          svr     = new PostgreSQL(cs);
            var                 decodes = DecodesUtility.GetDataSet(svr);
            McfDecodesConverter c       = new McfDecodesConverter(svr, pnMcf, decodes);

            c.importMcf(siteFilter.Split(','), networkListName);

            UpdateSequences(svr);
        }
 public McfDecodesConverter(PostgreSQL svr, McfDataSet mcf, DecodesDataSet decodes,
                            string[] siteList)
 {
     m_siteList   = siteList;
     this.svr     = svr;
     this.mcf     = mcf;
     this.decodes = decodes;
     m_converter  = new UnitConversion(mcf, decodes, svr);
 }
Example #5
0
        /// <summary>
        /// Loads xml version of  MCF
        /// </summary>
        /// <param name="svr"></param>
        /// <returns></returns>
        public static McfDataSet GetDataSetFromDisk( )
        {
            Performance p  = new Performance();
            var         ds = new McfDataSet();
            string      fn = Path.Combine(FileUtility.GetExecutableDirectory(), "mcf.xml");

            ds.ReadXml(fn);
            p.Report("loaded mcf.xml");
            return(ds);
        }
Example #6
0
        /// <summary>
        /// Loads xml version of  MCF
        /// </summary>
        /// <param name="svr"></param>
        /// <returns></returns>
        public static McfDataSet GetDataSetFromDisk( )
        {
            Performance p  = new Performance();
            var         ds = new McfDataSet();
            string      fn = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "mcf.xml");

            ds.ReadXml(fn);
            p.Report("loaded mcf.xml");
            return(ds);
        }
Example #7
0
        /// <summary>
        /// Appends source mcf data to dest
        /// </summary>
        /// <param name="pnMcf"></param>
        /// <param name="yakMcf"></param>
        private static void AppendMcf(McfDataSet dest, McfDataSet source)
        {
            for (int i = 0; i < dest.Tables.Count; i++)
            {
                var dt = dest.Tables[i];
                var st = source.Tables[dt.TableName];

                string keyColumnName = dt.Columns[0].ColumnName;

                for (int r = 0; r < st.Rows.Count; r++)
                {
                    // check if row allready exists in dest
                    DataRow destRow = null;


                    var keyValue = st.Rows[r][keyColumnName].ToString();
                    //if( keyValue == "AMRW")
                    //  Console.WriteLine();

                    var rows = dt.Select(keyColumnName + " = '" + keyValue + "'");
                    if (rows.Length > 1)
                    {
                        throw new Exception("keyColumn contains " + rows.Length.ToString() + " matches");
                    }
                    if (rows.Length == 1)
                    {
                        destRow = rows[0];
                    }
                    else
                    {// or add row
                        destRow = dt.NewRow();
                        dt.Rows.Add(destRow);
                    }

                    for (int c = 0; c < dt.Columns.Count; c++)
                    {
                        string cn = dt.Columns[c].ColumnName;
                        destRow[cn] = st.Rows[r][cn];
                    }
                }
            }
        }
Example #8
0
        /// <summary>
        /// Loads xml version of  MCF
        /// </summary>
        /// <param name="svr"></param>
        /// <returns></returns>
        public static McfDataSet GetDataSetFromCsvFiles(string mrdbPath)
        {
            Performance p  = new Performance();
            var         ds = new McfDataSet();

            //  ds.EnforceConstraints = false;
            foreach (var item in tableNames)
            {
                var fn = Path.Combine(mrdbPath, item + ".csv");
                if (!File.Exists(fn))
                {
                    Logger.WriteLine("Error: file missing '" + fn + "'");
                    continue;
                }
                var csv = new CsvFile(fn);

                if (item == "site")
                {
                    FixLatLong(csv);
                }
                // yakima has two extra columns.
                //if (item == "pcode" && csv.Columns.Contains("TAGTYPE"))
                //    csv.Columns.Remove("TAGTYPE");
                //if (item == "pcode" && csv.Columns.Contains("LOGORDER"))
                //    csv.Columns.Remove("LOGORDER");

                csv.TableName = item + "mcf";

                try
                {
                    ds.Merge(csv, true, MissingSchemaAction.Ignore);
                }
                catch (ConstraintException ce)
                {
                    Console.WriteLine("Error in table " + item + "\n " + ce.Message);
                    PrintTableErrors(csv);
                }
            }
            return(ds);
        }
Example #9
0
        /// <summary>
        /// Loads xml version of  MCF
        /// </summary>
        /// <param name="svr"></param>
        /// <returns></returns>
        public static McfDataSet GetDataSetFromCsvFiles( )
        {
            Performance p = new Performance();
            var ds = new McfDataSet();
              //  ds.EnforceConstraints = false;
            foreach (var item in tableNames)
            {
                var fn = FileUtility.GetFileReference(item + ".csv");
                if (!File.Exists(fn))
                {
                    Logger.WriteLine("Error: file missing '" + fn + "'");
                    continue;
                }
                var csv = new CsvFile(fn);

                if( item == "site")
                   FixLatLong(csv);
                // yakima has two extra columns.
                //if (item == "pcode" && csv.Columns.Contains("TAGTYPE"))
                //    csv.Columns.Remove("TAGTYPE");
                //if (item == "pcode" && csv.Columns.Contains("LOGORDER"))
                //    csv.Columns.Remove("LOGORDER");

                csv.TableName = item + "mcf";

                try
                {
                    ds.Merge(csv,true, MissingSchemaAction.Ignore);
                }
                catch (ConstraintException ce)
                {
                    Console.WriteLine("Error in table "+item +"\n "+ce.Message);
                    PrintTableErrors(csv);
                }

            }
            return ds;
        }
Example #10
0
        public static void Import(string serverIP, string database, string password, string networkListName,
                                  string[] siteList, string mrdbPath)
        {
            string      fn    = @"C:\temp\mcf.xml";
            Performance perf  = new Performance();
            var         pnMcf = new McfDataSet();

            if (File.Exists(fn) && File.GetLastWriteTime(fn).Date == DateTime.Now.Date)
            { // read existing file.
                Logger.WriteLine("Reading existing XML");
                pnMcf.ReadXml(fn);
            }
            else
            {
                Logger.WriteLine("Reading csv files from MCF");
                pnMcf = McfUtility.GetDataSetFromCsvFiles(mrdbPath);
                pnMcf.WriteXml(fn);
            }

            DumpInfo(pnMcf);

            Application.DoEvents();

            Logger.WriteLine(serverIP);


            var svr = PostgreSQL.GetPostgresServer(database, serverIP, "decodes", password) as PostgreSQL;

            DecodesUtility.UpdateSequences(svr);
            DecodesUtility.GenerateDataSet(@"c:\temp\decodes.xsd", svr);

            var decodes           = DecodesUtility.GetDataSet(svr);
            McfDecodesConverter c = new McfDecodesConverter(svr, pnMcf, decodes, siteList);

            c.importMcf(networkListName);
        }
Example #11
0
 /// <summary>
 /// Loads xml version of  MCF
 /// </summary>
 /// <param name="svr"></param>
 /// <returns></returns>
 public static McfDataSet GetDataSetFromDisk( )
 {
     Performance p = new Performance();
       var ds = new McfDataSet();
       string fn = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "mcf.xml");
       ds.ReadXml(fn);
       p.Report("loaded mcf.xml");
       return ds;
 }