Ejemplo n.º 1
0
        private void подключитьсяToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (isConnected)
            {
                подключитьсяToolStripMenuItem.Text = "Подключиться";
                ModesApiFactory.CloseConnection();
                isConnected = false;
            }
            else
            {
                ConnectionForm_ f1 = new ConnectionForm_();
                if (f1.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                if (f1.isLocal)
                {
                    ModesApiFactory.Initialize(f1.serverName, f1.User, f1.Pass);
                }
                else
                {
                    ModesApiFactory.Initialize(f1.serverName);
                }


                if (ModesApiFactory.IsInitilized)
                {
                    api_ = ModesApiFactory.GetModesApi();

                    api_.OnData53500Modified += new EventHandler <EventRefreshData53500>(api__OnData53500Modified);
                    api_.OnMaket53500Changed += new EventHandler <EventRefreshJournalMaket53500>(api__OnMaket53500Changed);
                    api_.OnNsiModified       += new EventHandler <EventUpdateNsi>(api__OnNSIModified);
                    api_.OnClose             += new EventHandler(api__ServiceOnClose);
                    api_.OnPlanDataChanged   += new EventHandler <EventPlanDataChanged>(api__OnPlanDataChanged);
                    isConnected = true;
                    подключитьсяToolStripMenuItem.Text = "Отключиться";
                }
            }
        }
Ejemplo n.º 2
0
        public MCServerReader(DateTime date, bool writeNPBR = true)
        {
            Logger.Info("Чтение ПБР за " + date.ToString());
            Date         = date;
            AutooperData = new List <string>();
            Logger.Info("Connect MC");
            ProcessedPBRS = new Dictionary <int, MCPBRData>();

            try {
                modesConnect();
                SyncZone zone = SyncZone.First;

                IModesTimeSlice ts = null;
                ts = api.GetModesTimeSlice(date.Date.LocalHqToSystemEx(), zone
                                           , TreeContent.PGObjects              /*только оборудование, по которому СО публикует ПГ(включая родителей)*/
                                           , false);


                bool ok = true;
                foreach (IGenObject obj in ts.GenTree)
                {
                    ok = ok && getPlan(obj);
                }

                if (ok)
                {
                    if (ProcessedPBRS.Count != 7)
                    {
                        Logger.Info("Количество ПБР !=7. Отправка в автооператор не производится");
                    }
                    else
                    {
                        foreach (MCPBRData pbr in ProcessedPBRS.Values)
                        {
                            pbr.CreateData();
                            pbr.addAutooperData(AutooperData);
                        }
                        Logger.Info("АО кол.строк " + AutooperData.Count);
                        if (AutooperData.Count == 100)
                        {
                            Logger.Info("Отправка в АО кол.строк ");
                            try {
                                sendAutooperData();
                                Logger.Info("Данный отправлены  в АО");
                            } catch (Exception e) {
                                Logger.Info("Ошибка при отправке данных в АО");
                                Logger.Info(e.ToString());
                            }
                        }
                        else
                        {
                            Logger.Info("Неверное количество данных в АО");
                        }
                    }
                }
                //return;

                if (ok)
                {
                    Logger.Info("Зaпись ПБР в Базу");
                    foreach (MCPBRData pbr in ProcessedPBRS.Values)
                    {
                        try {
                            pbr.CreateData();
                            bool okWrite = false;
                            int  i       = 0;
                            while (!okWrite && i < 3)
                            {
                                Logger.Info(String.Format("Запись {0} ПБР. Попытка {1}", pbr.Item, i));
                                okWrite = pbr.ProcessData();
                                i++;
                            }
                        } catch {
                            Logger.Info("Ошибка при записи ПБР в базу");
                        }
                    }
                    Logger.Info("Запись номера ПБР");

                    DateTime             ds  = DateTime.Now;
                    DateTime             de  = this.Date.AddDays(1);
                    List <ShadeSelector> sel = new List <ShadeSelector>();
                    sel.Add(new ShadeSelector()
                    {
                        period = new TimePeriod()
                        {
                            from = new Timestamp()
                            {
                                second = EDSClass.toTS(ds)
                            },
                            till = new Timestamp()
                            {
                                second = EDSClass.toTS(de)
                            }
                        },
                        pointId = new PointId()
                        {
                            iess = "NPBR.EDS@CALC"
                        }
                    });

                    Logger.Info("Удаление номера ПБР");
                    uint id = EDSClass.Client.requestShadesClear(EDSClass.AuthStr, sel.ToArray());
                    ok = EDSClass.ProcessQuery(id);

                    if (ok)
                    {
                        List <Shade>      shades = new List <Shade>();
                        List <ShadeValue> vals   = new List <ShadeValue>();
                        vals.Add(new ShadeValue()
                        {
                            period = new TimePeriod()
                            {
                                from = new Timestamp()
                                {
                                    second = EDSClass.toTS(ds)
                                },
                                till = new Timestamp()
                                {
                                    second = EDSClass.toTS(de)
                                }
                            },
                            quality = Quality.QUALITYGOOD,
                            value   = new PointValue()
                            {
                                av = NPBR, avSpecified = true
                            }
                        });
                        shades.Add(new Shade()
                        {
                            pointId = new PointId()
                            {
                                iess = "NPBR.EDS@CALC"
                            },
                            values = vals.ToArray()
                        });
                        Logger.Info("Запись данных");
                        id = EDSClass.Client.requestShadesWrite(EDSClass.AuthStr, shades.ToArray());
                        ok = EDSClass.ProcessQuery(id);
                    }
                }
            } catch (Exception e) {
                Logger.Info("Ошибка при получении ПБР с сервера MC " + e);
            } finally {
                ModesApiFactory.CloseConnection();
            }
        }