public async void ExecuteOpenAdvSettings(object obj)
 {
     advView      = new AdvancedViewModel(Request);
     dial         = new ResponseWindow();
     dial.Height  = 400;
     dial.Width   = 400;
     dial.Content = advView.GetContext();
     await((MetroWindow)Application.Current.MainWindow).ShowMetroDialogAsync(dial);
 }
        /// <summary>
        /// closes the Metro dialogues.
        /// </summary>
        /// <param name="obj"></param>
        public async void ExecuteClose(object obj)
        {
            if (obj == null && advView != null)
            {
                advView.ExecuteClose(obj);
                advView = null;
            }
            var openDial = await((MetroWindow)Application.Current.MainWindow).GetCurrentDialogAsync <BaseMetroDialog>();

            if (openDial != null)
            {
                if (dial?.Visibility == Visibility.Visible)
                {
                    if (advView != null)
                    {
                        advView = null;
                    }
                    dial.Visibility = Visibility.Hidden;
                }
                await((MetroWindow)Application.Current.MainWindow).HideMetroDialogAsync(openDial);
            }
        }