示例#1
0
        static void Main()
        {
            Moo.DataManager.MonsoonConnectionString = Properties.Settings.Default.DvinaConnectionString;
            Moo.DataObs.DataManager.MonsoonDataObservationConnectionString = Properties.Settings.Default.DvinaDataObservationConnectionString;

            foreach (var file in Directory.GetFiles(DIR_FOR_IMPORT, "*.csv"))
            {
                //List<FileRowData> data = FileChemAnnual.Parse(file);
                var datafile = FileChemAnnual.Parse(file);

                if (datafile != null)
                {
                    Console.WriteLine($"Site {datafile[0].SiteCode}, {datafile.Count} file rows readed.");

                    List <DataValue> datavals = DataValue.Convert(datafile);
                    Moo.DataObs.DataObsDataSetTableAdapters.qta qta = new Moo.DataObs.DataObsDataSetTableAdapters.qta();
                    foreach (DataValue dataval in datavals)
                    {
                        qta.SaveSingleDataValue(dataval.CatalogId, dataval.Date, dataval.OffsetValue, dataval.Value, dataval.FlagAQC, dataval.UTCOffset, dataval.DataSourceId);
                    }

                    if (IS_MOVE_TO_IMPORTED_DIR)
                    {
                        CommonFileProcess.MoveFile2DirImported(file);
                    }
                }
                else
                {
                    Console.WriteLine($"ERROR: 0 file rows readed.");
                }
            }

            Console.WriteLine("Press ENTER...");
            Console.ReadLine();
        }
示例#2
0
        static Dictionary <int /*VariableId*/, int /*CatalogId*/> GetCatalogIds(int siteId, List <int> variableIds)
        {
            Moo.DataObs.DataObsDataSet ds = new Moo.DataObs.DataObsDataSet();
            Moo.DataObs.DataObsDataSetTableAdapters.CatalogsTableAdapter ta = new Moo.DataObs.DataObsDataSetTableAdapters.CatalogsTableAdapter();
            Moo.DataObs.DataObsDataSetTableAdapters.qta qta = new Moo.DataObs.DataObsDataSetTableAdapters.qta();

            int methodId     = 0;    // Наблюдения
            int valueTypeId  = 2;    // Наблюдения
            int offsetTypeId = 0;    // Нет смещения
            int dateTypeId   = 2;    // Local time
            int sourceId     = 1402; // ИВП ДВО РАН

            ta.Fill(ds.Catalogs,
                    Moo.DataObs.DataManager.GetDataTableArrayOfInt(new List <int>()
            {
                siteId
            }),
                    Moo.DataObs.DataManager.GetDataTableArrayOfInt(variableIds),
                    Moo.DataObs.DataManager.GetDataTableArrayOfInt(new List <int>()
            {
                methodId
            }),
                    Moo.DataObs.DataManager.GetDataTableArrayOfInt(new List <int>()
            {
                sourceId
            }),
                    Moo.DataObs.DataManager.GetDataTableArrayOfInt(new List <int>()
            {
                offsetTypeId
            }),
                    Moo.DataObs.DataManager.GetDataTableArrayOfInt(new List <int>()
            {
                valueTypeId
            }),
                    Moo.DataObs.DataManager.GetDataTableArrayOfInt(new List <int>()
            {
                dateTypeId
            })
                    );

            Dictionary <int /*VariableId*/, int /*CatalogId*/> ret = new Dictionary <int, int>();

            foreach (var variableId in variableIds)
            {
                IEnumerable <Moo.DataObs.DataObsDataSet.CatalogsRow> ctlRows = ds.Catalogs.Where(x => x.VariableId == variableId);
                int catalogId = -1;

                // NO CATALOG RECORD => CREATE
                if (ctlRows.Count() == 0)
                {
                    catalogId = (int)qta.InsertCatalogs(siteId, variableId, offsetTypeId, methodId, sourceId, valueTypeId, dateTypeId);
                }
                // CATALOG RECORD EXISTS => USE
                else if (ctlRows.Count() == 1)
                {
                    catalogId = ctlRows.ElementAt(0).Id;
                }
                // MORE THAN ONE CATALOG RECORD => THROW
                else
                {
                    throw new Exception($"(ds.Catalogs.Where(x => x.VariableId == {variableId}).Count() > 1)");
                }

                ret.Add(variableId, catalogId);
            }

            return(ret);
        }