Beispiel #1
0
        private void btnOpen_Click(object sender, EventArgs e)
        {
            if (rbSrez.Checked)
            {
                dataTable = new DataTable("SrezTable");
                SrezAdapter sa = new SrezAdapter();
                sa.FileName = txtFileName.Text;
                sa.Fill(dataTable);
            }
            else if (rbEvent.Checked)
            {
                dataTable = new DataTable("EventTable");
                EventAdapter ea = new EventAdapter();
                ea.FileName = txtFileName.Text;
                ea.Fill(dataTable);
            }
            else // rbBase.Checked
            {
                dataTable = new DataTable("BaseTable");
                BaseAdapter ba = new BaseAdapter();
                ba.FileName = txtFileName.Text;
                ba.Fill(dataTable, true);
            }

            dataGridView.DataSource = dataTable;
        }
Beispiel #2
0
 /// <summary>
 /// Загрузить таблицу событий
 /// </summary>
 private static bool LoadDataTable(EventAdapter eventAdapter, Log errLog, ref DataTable dataTable)
 {
     try
     {
         eventAdapter.Fill(dataTable);
         return true;
     }
     catch (Exception ex)
     {
         string errMsg = AppPhrases.LoadEventTableError + ":\r\n" + ex.Message;
         if (errLog != null)
             errLog.WriteAction(errMsg, Log.ActTypes.Exception);
         ScadaUtils.ShowError(errMsg);
         return false;
     }
 }
Beispiel #3
0
        /// <summary>
        /// Принять таблицу событий от SCADA-Сервера
        /// </summary>
        public bool ReceiveEventTable(string tableName, EventTableLight eventTableLight)
        {
            Monitor.Enter(tcpLock);
            bool result = false;
            errMsg = "";

            try
            {
                try
                {
                    if (RestoreConnection())
                    {
                        using (MemoryStream memStream = new MemoryStream())
                        {
                            if (ReceiveFile(Dirs.Events, tableName, memStream))
                            {
                                EventAdapter adapter = new EventAdapter();
                                adapter.Stream = memStream;
                                adapter.TableName = tableName;
                                adapter.Fill(eventTableLight);
                                result = true;
                            }
                        }
                    }
                }
                finally
                {
                    // очистка таблицы, если не удалось получить новые данные
                    if (!result)
                    {
                        eventTableLight.Clear();
                        eventTableLight.TableName = tableName;
                    }
                }
            }
            catch (Exception ex)
            {
                errMsg = (Localization.UseRussian ? "Ошибка при приёме таблицы событий от SCADA-Сервера: " : 
                    "Error receiving event table from SCADA-Server: ") + ex.Message;
                WriteAction(errMsg, Log.ActTypes.Exception);
            }
            finally
            {
                Monitor.Exit(tcpLock);
            }

            return result;
        }
Beispiel #4
0
        /// <summary>
        /// Экспортировать события, загрузив их из файла
        /// </summary>
        private void ExportEventsFromFile(Exporter exporter, DateTime date)
        {
            // загрузка таблицы событий из файла
            EventTableLight eventTable = new EventTableLight();
            EventAdapter eventAdapter = new EventAdapter();
            eventAdapter.FileName = ServerUtils.BuildEvFileName(Settings.ArcDir, date);

            try
            {
                eventAdapter.Fill(eventTable);
            }
            catch (Exception ex)
            {
                log.WriteAction(string.Format(Localization.UseRussian ?
                    "Ошибка при загрузке таблицы событий из файла {0}: {1}" :
                    "Error loading event table from file {0}: {1}", eventAdapter.FileName, ex.Message));
            }

            // добавление событий в очередь экспорта
            if (eventTable.AllEvents.Count > 0)
            {
                foreach (EventTableLight.Event ev in eventTable.AllEvents)
                    exporter.EnqueueEvent(ev);
                log.WriteAction(Localization.UseRussian ? "События добавлены в очередь экспорта" :
                    "Events added to export queue");
            }
            else
            {
                log.WriteAction(Localization.UseRussian ? "Отсутствуют события для экспорта" :
                    "No events to export");
            }
        }