private void MainForm_Load(object sender, EventArgs e) { Visible = false; //set record from journal UpdateMessenger.CreateRunningApps(ModelUserContext.ClientID, AppCode); //TODO нужна ли эта проверка, если подключение к той же БД, что EIDSS //if (UpdateMessenger.WasConnected) //{ TimerUpdateListener.Enabled = true; //} if (Login() == false) { return; } //string commands = Microsoft.VisualBasic.Interaction.Command(); //Dbg.Debug("eidss is started with command line: {0}", commands); //if (!Utils.IsEmpty(commands)) //{ // string[] args = commands.Split(' '.ToString().ToCharArray()); // foreach (string cmd in args) // { // switch (cmd.Substring(0, 2)) // { // case "\\e": // try // { // Nullable<long> eventID = Utils.ToNullableLong(cmd.Substring(2)); // if (eventID.HasValue) // { // EventList.ShowEventDetail(System.Convert.ToInt32(eventID)); // } // } // catch (Exception) // { // ErrorForm.ShowError(new EIDSSErrorMessage("errFailToOpenEventDetail", "Fail to open EIDSS notification details.")); // } // break; // } // } //} m_Loaded = true; }
void TimerUpdateListener_Elapsed(object sender, EventArgs e) { if (!UpdateMessenger.CanConnect()) { //if there is no connection, let's check updates more rarely TimerUpdateListener.Interval = 100 * 1000; return; } //Restore default listen interval if connection exists TimerUpdateListener.Interval = UpdateMessenger.ListenInterval; //обновим, что данный экземпляр EIDSS ещё живёт UpdateMessenger.CreateRunningApps(ModelUserContext.ClientID, AppCode); //проверяем не начался ли апдейт //апдейт можно игнорировать, если соблюдаются те же бизнес-правила, что и для старта приложения if (!UpdateMessenger.CanRunApplication(ModelUserContext.ClientID, AppCode)) { //отключаем один таймер и включаем другой, который через 10 минут принудительно выключит приложение TimerUpdateListener.Enabled = false; TimerExit.Enabled = true; ErrorForm.ShowMessageDirect(EidssMessages.Get("ApplicationMustBeClosed")); } }