private void DispatcherControlRequest(object sender, ApplicationControlRequestArgs e) { _actionApplied = e.ControlType; //if (e.ControlType == ControlType.Exit || e.ControlType == ControlType.LogOut) //{ // IDisplayer[] displayers = _defaultProxy.ContainedDisplayers; // foreach (IDisplayer displayer in displayers) // { // DisplayerCancelEventArgs arguments = new DisplayerCancelEventArgs(displayer, ControlType.Exit); // displayer.OnDisplayerRemoved(arguments); // if (arguments.Cancel) // { // e.Cancel = true; // return; // } // if(_defaultProxy.ContainedDisplayers.Length > 1) // { // _defaultProxy.Remove(displayer, false); // } // } //} //GlobalObjects.CasEnvironment.Disconnect(); //_controlledForm.Close(); if (e.ControlType == ControlType.Exit) { IDisplayer[] displayers = _defaultProxy.ContainedDisplayers; foreach (IDisplayer displayer in displayers) { DisplayerCancelEventArgs arguments = new DisplayerCancelEventArgs(displayer, ControlType.Exit); displayer.OnDisplayerRemoving(arguments); if (arguments.Cancel) { e.Cancel = true; return; } //Оповещение о окончании удаления вкладки displayer.OnDisplayerRemoved(arguments); //Если вкладка запросила отменить закрытие, операция прекращается if (arguments.Cancel) { e.Cancel = true; break; } if (_defaultProxy.ContainedDisplayers.Length > 1) { _defaultProxy.Remove(displayer, false); } } GlobalObjects.CasEnvironment.Disconnect(); _controlledForm.Close(); } if (e.ControlType == ControlType.LogOut) { IDisplayer[] displayers = _defaultProxy.ContainedDisplayers; foreach (IDisplayer displayer in displayers) { DisplayerCancelEventArgs arguments = new DisplayerCancelEventArgs(displayer, ControlType.Exit); displayer.OnDisplayerRemoving(arguments); if (arguments.Cancel) { e.Cancel = true; return; } //Оповещение о окончании удаления вкладки displayer.OnDisplayerRemoved(arguments); //Если вкладка запросила отменить закрытие, операция прекращается if (arguments.Cancel) { e.Cancel = true; break; } if (_defaultProxy.ContainedDisplayers.Length > 1) { _defaultProxy.Remove(displayer, false); } } GlobalObjects.CasEnvironment.Disconnect(); _defaultProxy.ContainedDisplayers[0].Text = "Login"; _defaultProxy.ContainedDisplayers[0].Entity = new DispatcheredUIControls.MainControls.DispatcheredUILoginPage { BackColor = System.Drawing.Color.White, Displayer = null, DisplayerText = "Login", Dock = DockStyle.Fill, Location = new System.Drawing.Point(0, 0), Margin = new Padding(4, 4, 4, 4), ReflectionType = ReflectionTypes.CloseDisplayerContainingEntity, }; //_defaultProxy.ContainedDisplayers[0].Entity = // new OperatorSummaryScreen(GlobalObjects.CasEnvironment.Operators[0]); } }