Ejemplo n.º 1
0
 private void IsSysDns_Checked(object sender, RoutedEventArgs e)
 {
     if (new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator))
     {
         SysDnsSet.SetDns("127.0.0.1", DnsSettings.SecondDnsIp.ToString());
         Snackbar.MessageQueue.Enqueue(new TextBlock()
         {
             Text = "主DNS:" + IPAddress.Loopback +
                    Environment.NewLine +
                    "辅DNS:" + DnsSettings.SecondDnsIp
         });
         IsSysDns.ToolTip = "已设为系统 DNS";
     }
     else
     {
         var snackbarMsg = new SnackbarMessage()
         {
             Content       = "权限不足",
             ActionContent = "Administrator权限运行",
         };
         snackbarMsg.ActionClick += RunAsAdmin_OnActionClick;
         Snackbar.MessageQueue.Enqueue(snackbarMsg);
         IsSysDns.IsChecked = false;
     }
 }
Ejemplo n.º 2
0
        private void OpenSubList_OnClick(object sender, RoutedEventArgs e)
        {
            var snackbarMsg = new SnackbarMessage
            {
                Content       = "没有找到订阅列表文件,是否创建?(每行一条地址)",
                ActionContent = "现在创建并编辑"
            };

            snackbarMsg.ActionClick += (o, args) =>
            {
                File.Create($"{MainWindow.SetupBasePath}white.sub.list").Close();
                Process.Start(new ProcessStartInfo($"{MainWindow.SetupBasePath}white.sub.list"));
                Snackbar.IsActive = false;
            };
            Snackbar.Message = snackbarMsg;

            if (File.Exists($"{MainWindow.SetupBasePath}white.sub.list"))
            {
                Process.Start(new ProcessStartInfo($"{MainWindow.SetupBasePath}white.sub.list"));
            }
            else if (File.Exists($"{MainWindow.SetupBasePath}rewrite.sub.list"))
            {
                Process.Start(new ProcessStartInfo($"{MainWindow.SetupBasePath}rewrite.sub.list"));
            }
            else
            {
                Snackbar.IsActive = true;
            }
        }
Ejemplo n.º 3
0
 public MainWindow()
 {
     InitializeComponent();
     DataContext     = main;
     Snackbar        = SnackBar;
     SnackbarMessage = SnackBarMessage;
 }
Ejemplo n.º 4
0
 public Autorization(Window window, TextBox textBox, PasswordBox passwordBox,
                     Snackbar snackbar, SnackbarMessage snackbarMessage)
 {
     this.passwordBox = passwordBox;
     this.textBox     = textBox;
     this.window      = window;
     sB = new SB(snackbar, snackbarMessage);
 }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Visibility = Visibility.Hidden;
            WindowBlur.SetEnabled(this, true);
            var desktopWorkingArea = SystemParameters.WorkArea;

            Left = desktopWorkingArea.Right - Width - 1;
            Top  = desktopWorkingArea.Bottom - Height - 0;

            FadeIn(0.50);
            Visibility         = Visibility.Visible;
            NotifyIcon.Visible = true;

            if (!MyTools.PortIsUse(53))
            {
                IsLog.IsChecked = DnsSettings.DebugLog;
                if (Equals(DnsSettings.ListenIp, IPAddress.Any))
                {
                    IsGlobal.IsChecked = true;
                }

                DnsEnable.IsChecked = true;
                Grid.Effect         = null;

                if (File.Exists($"{SetupBasePath}config.json"))
                {
                    WindowState = WindowState.Minimized;
                }
            }
            else
            {
                Snackbar.IsActive = true;
                if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName)
                    .Count(o => o.Id != Process.GetCurrentProcess().Id) > 0)
                {
                    var snackbarMsg = new SnackbarMessage()
                    {
                        Content       = "可能已有一个正在运行的实例, 请不要重复启动!",
                        ActionContent = "退出",
                    };
                    snackbarMsg.ActionClick += (o, args) => Environment.Exit(Environment.ExitCode);
                    Snackbar.Message         = snackbarMsg;
                    NotifyIcon.Text          = @"AuroraDNS - [请不要重复启动]";
                }
                else
                {
                    Snackbar.Message = new SnackbarMessage()
                    {
                        Content = "DNS 服务器无法启动, 端口被占用。"
                    };
                    NotifyIcon.Text = @"AuroraDNS - [端口被占用]";
                }

                DnsEnable.IsEnabled   = false;
                ControlGrid.IsEnabled = false;
            }
        }
Ejemplo n.º 6
0
        public MainWindow()
        {
            InitializeComponent();
            ShowCatalogUC    = ShowCatalog;
            PersonalAccoutUC = PersonalAccout;

            Snackbar        = SnackBar;
            SnackbarMessage = SnackBarMessage;
            ExitAccountBtn  = ExitAccount;
            CountBasket     = CountInBasket;

            AdminStackPanel = Admin;
        }
Ejemplo n.º 7
0
        private void TrigEditOkayBtn()
        {
            if (CopyedSelectTrigitem == null)
            {
                SnackbarMessage.Enqueue("취소할 수 없습니다.");
                return;
            }

            for (int i = 0; i < CopyedSelectTrigitem.args.Count; i++)
            {
                if (CopyedSelectTrigitem.args[i].IsInit)
                {
                    SnackbarMessage.Enqueue("모든 인자를 선택하세요.");
                    return;
                }
            }

            if (IsNewTrigEdit)
            {
                //새로 연 에딧
                //TriggerItemListbox
                //currentList

                if (TriggerItemListbox.SelectedItems.Count == 0)
                {
                    currentList.Add(CopyedSelectTrigitem);
                }
                else
                {
                    currentList.Insert(TriggerItemListbox.SelectedIndex, CopyedSelectTrigitem);
                }
            }
            else
            {
                //이미 있던 것
                SelectTrigitem.args.Clear();
                for (int i = 0; i < CopyedSelectTrigitem.args.Count; i++)
                {
                    SelectTrigitem.args.Add(CopyedSelectTrigitem.args[i].Clone());
                }
                SelectTrigitem.type          = CopyedSelectTrigitem.type;
                SelectTrigitem.triggerDefine = CopyedSelectTrigitem.triggerDefine;

                SelectTrigitem.PropertyChangeAll();
            }


            CloseTrigItemEditWindow();
        }
Ejemplo n.º 8
0
        public MainWindow()
        {
            ToastMessageQueue = new SnackbarMessageQueue();

            InitializeComponent();

            // reactiveUI.Router stuff
            Router = new RoutingState();

            Router.CurrentViewModel.Subscribe(viewModel =>
            {
                if (viewModel == null)
                {
                    Frame.Content = null;
                    return;
                }

                var viewLocator = App.CoapExplorer.Locator.GetService <IViewLocator>();
                var view        = viewLocator.ResolveView(viewModel);
                view.ViewModel  = viewModel;
                Frame.Navigate(view);
            });

            Router.NavigateAndReset.Execute(new HomeViewModel(this))
            .Subscribe();

            App.CoapExplorer.ToastNotifications.Subscribe(toast =>
            {
                var toastMessage = new SnackbarMessage {
                    Content = toast.Message
                };

                if (toast.Actions.Count == 0)
                {
                    ToastMessageQueue.Enqueue(toastMessage, true);
                }
                else
                {
                    ToastMessageQueue.Enqueue(
                        toastMessage,
                        toast.Actions[0].Label.ToUpper(), p => ((ICommand)toast.Actions[0].Command).Execute(p),
                        null,
                        false, true);
                }
            });
        }
        private async void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Snackbar           = PART_SnackBar;
            SnackbarMessage    = SnackBarContent;
            PART_Frame.Content = new MyMainPage(this);

            UserInfoResponse response = await NetworkHelper.GetAsync(new UserInfoRequest()
            {
                UserId = UserInfo.Id
            }).Progress(PART_ProgressBar);

            UserInfo.PhoneNumber = response.PhoneNumber;
            UserInfo.HomeAddress = response.HomeAddress;
            UserInfo.UserType    = response.UserType;
            // 要根据用户类型调整tab,目前测试状态,禁用这段代码
            RefreshTabDisplay();
        }
Ejemplo n.º 10
0
 private void SnakeBarMessage(string message)
 {
     Dispatcher.Invoke(new Action(() =>
     {
         var snackbarMessage     = new SnackbarMessage();
         snackbarMessage.Content = message;
         snackbar.Message        = snackbarMessage;
         snackbar.IsActive       = true;
     }));
     Task.Delay(2000).Wait();
     Dispatcher.Invoke(new Action(() =>
     {
         var snackbarMessage     = new SnackbarMessage();
         snackbarMessage.Content = string.Empty;
         snackbar.Message        = snackbarMessage;
         snackbar.IsActive       = false;
     }));
 }
Ejemplo n.º 11
0
        private void SendInvite(object obj)
        {
            if (_gameNetLobbyModel.View.ListBoxUsers.SelectedItem == null)
                return;

            var user = _gameNetLobbyModel.View.ListBoxUsers.SelectedItem as UserTemplate;

            // Самому себе слать приглашения не разрешаем
            if (user?.Name == _gameNetLobbyModel.LoginData.UserName)
                return;

            // Запускаем окно-диалог с настройкой приглашения
            _gameNetLobbyModel.View.DialogHostInvite.DialogClosing += async (s, a) => {
                if (!Equals(a.Parameter, true))
                    return;

                await _gameNetLobbyModel.View.Dispatcher.InvokeAsync(() => {
                    // Уведомляем, что инвайт отправлен
                    var message = new SnackbarMessage {
                        Content = $"Приглашение отправлено пользователю {user?.Name}".ToUpper(),
                    };
                    _gameNetLobbyModel.View.Snackbar.Message = message;
                    _gameNetLobbyModel.View.Snackbar.IsActive = true;

                    var seconds = 0;
                    var timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1) };
                    timer.Tick += (o, e) => {
                        seconds++;
                        if (seconds != 3)
                            return;
                        _gameNetLobbyModel.View.Snackbar.IsActive = false;
                        timer.Stop();
                    };
                    timer.Start();
                });

                (string, string) from;
                (string, string) to;
                string firstMove;

                if (_gameNetLobbyModel.View.CbDialogInviteYouBlack.IsChecked != null
                    && _gameNetLobbyModel.View.CbDialogInviteYouBlack.IsChecked.Value)
                    from = (_gameNetLobbyModel.LoginData.UserName, "Чёрные");
Ejemplo n.º 12
0
        } // StartNewGame


        private void DisplayMessage(string msg)
        {
            var message = new SnackbarMessage {
                Content = msg.ToUpper(),
            };
            View.StatusText.Text = msg;
            View.Snackbar.Message = message;
            View.Snackbar.IsActive = true;

            var seconds = 0;
            var timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1) };
            timer.Tick += (o, e) => {
                seconds++;
                if (seconds != 3)
                    return;
                View.Snackbar.IsActive = false;
                timer.Stop();
            };
            timer.Start();
        } // DisplayMessage
Ejemplo n.º 13
0
        private void CleanCache_OnClick(object sender, RoutedEventArgs e)
        {
            Snackbar.IsActive = true;
            MemoryCache.Default.Trim(100);
            var snackbarMsg = new SnackbarMessage()
            {
                Content       = "已经刷新内置缓存!",
                ActionContent = "刷新系统缓存"
            };

            snackbarMsg.ActionClick += (o, args) =>
            {
                new Process {
                    StartInfo = new ProcessStartInfo("ipconfig.exe", "/flushdns")
                }.Start();
                Snackbar.MessageQueue.Enqueue(new TextBlock()
                {
                    Text = @"已刷新系统 DNS 解析缓存"
                });
            };
            Snackbar.Message = snackbarMsg;
        }
Ejemplo n.º 14
0
        private void ItemTypeOkay()
        {
            if (SelectTrigitem == null)
            {
                if (TrigItemTypeListBox.SelectedIndex == -1)
                {
                    SnackbarMessage.Enqueue("타입을 선택하세요.");
                    return;
                }
            }

            if (TrigItemTypeListBox.SelectedIndex != -1)
            {
                if (CopyedSelectTrigitem == null)
                {
                    CopyedSelectTrigitem = new TrigItem(mapEditor.mapdata);

                    if (!IsTrigger)
                    {
                        CopyedSelectTrigitem.IsTrigger = false;
                        CopyedSelectTrigitem.IsAction  = true;
                    }
                }


                ListBoxItem listitem = (ListBoxItem)TrigItemTypeListBox.SelectedItem;
                CopyedSelectTrigitem.Init((TriggerManger.TriggerDefine)listitem.Tag);
                RefreshItem(CopyedSelectTrigitem);
            }


            ActionName.Text = CopyedSelectTrigitem.name;


            IsOpen = false;
            ItemTypeSelecter.Visibility = Visibility.Collapsed;
        }
Ejemplo n.º 15
0
 public CB(ComboBox comboBox,
           Snackbar snackbar, SnackbarMessage snackbarMessage)
 {
     this.comboBox = comboBox;
     sB            = new SB(snackbar, snackbarMessage);
 }
Ejemplo n.º 16
0
 public static void PublishMessage(this IEventAggregator aggregator, SnackbarMessage message)
 => aggregator.GetEvent <SharedEvent <SnackbarMessage>, SnackbarMessage>().Publish(message);
Ejemplo n.º 17
0
 private void SendSnackbarMessage(SnackbarMessage message)
 {
     Messenger.Default.Send(message);
 }
Ejemplo n.º 18
0
 public MyListBox(ListBox listBox,
                  Snackbar snackbar, SnackbarMessage snackbarMessage)
 {
     this.listBox = listBox;
     sB           = new SB(snackbar, snackbarMessage);
 }
Ejemplo n.º 19
0
 public DG(DataGrid dataGrid,
           Snackbar snackbar, SnackbarMessage snackbarMessage)
 {
     this.dataGrid = dataGrid;
     sB            = new SB(snackbar, snackbarMessage);
 }
Ejemplo n.º 20
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Visibility = Visibility.Hidden;
            if (Environment.OSVersion.Version.Major == 10)
            {
                WindowBlur.SetEnabled(this, true);
            }
            else
            {
                NotifyIcon.Icon = Properties.Resources.AuroraBlack;
                Background      = new SolidColorBrush(Colors.White)
                {
                    Opacity = 1
                };
            }

            var desktopWorkingArea = SystemParameters.WorkArea;

            Left = desktopWorkingArea.Right - Width - 5;
            Top  = desktopWorkingArea.Bottom - Height - 5;

            FadeIn(0.2);
            Visibility         = Visibility.Visible;
            NotifyIcon.Visible = true;

            if (!MyTools.PortIsUse(DnsSettings.ListenPort))
            {
                IsLog.IsChecked = DnsSettings.DebugLog;
                if (Equals(DnsSettings.ListenIp, IPAddress.Any))
                {
                    IsGlobal.IsChecked = true;
                }

                DnsEnable.IsChecked = true;
                Grid.Effect         = null;

                if (File.Exists($"{SetupBasePath}config.json"))
                {
                    WindowState = WindowState.Minimized;
                }
            }
            else
            {
                Snackbar.IsActive = true;
                if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName)
                    .Count(o => o.Id != Process.GetCurrentProcess().Id) > 0)
                {
                    var snackbarMsg = new SnackbarMessage()
                    {
                        Content       = "可能已有一个正在运行的实例, 请不要重复启动!",
                        ActionContent = "退出"
                    };
                    snackbarMsg.ActionClick += (o, args) => Environment.Exit(Environment.ExitCode);
                    Snackbar.Message         = snackbarMsg;
                    NotifyIcon.Text          = @"AuroraDNS - [请不要重复启动]";
                }
                else
                {
                    Snackbar.Message = new SnackbarMessage()
                    {
                        Content = $"DNS 服务器无法启动, {DnsSettings.ListenPort}端口被占用。"
                    };
                    NotifyIcon.Text = @"AuroraDNS - [端口被占用]";
                }

                DnsEnable.IsEnabled   = false;
                ControlGrid.IsEnabled = false;
            }

            if (Equals(DnsSettings.ListenIp, IPAddress.IPv6Any) ||
                Equals(DnsSettings.ListenIp, IPAddress.IPv6Loopback))
            {
                new TcpFwder(Equals(DnsSettings.ListenIp, IPAddress.IPv6Any) ? IPAddress.Any : IPAddress.Loopback, 53,
                             IPAddress.IPv6Loopback, 53).Run();
            }
        }
Ejemplo n.º 21
0
 public DataBaseQuery(Snackbar snackbar, SnackbarMessage snackbarMessage)
 {
     sB = new SB(snackbar, snackbarMessage);
 }
Ejemplo n.º 22
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            if (Environment.OSVersion.Version.Major < 10)
            {
                try
                {
                    TaskbarIcon.IconSource = new BitmapImage(new Uri("pack://*****:*****@"AuroraDNS - [请不要重复启动]";
                }
                else
                {
                    Snackbar.Message = new SnackbarMessage()
                    {
                        Content = $"DNS 服务器无法启动, {DnsSettings.ListenPort}端口被占用。"
                    };
                    TaskbarToolTip.Text = @"AuroraDNS - [端口被占用]";
                }

                DnsEnable.IsEnabled   = false;
                ControlGrid.IsEnabled = false;
            }

            if (Equals(DnsSettings.ListenIp, IPAddress.IPv6Any) ||
                Equals(DnsSettings.ListenIp, IPAddress.IPv6Loopback))
            {
                new IPv4Listener(Equals(DnsSettings.ListenIp, IPAddress.IPv6Any) ? IPAddress.Any : IPAddress.Loopback,
                                 53).Run();
            }

            IsLog.ToolTip = IsLog.IsChecked == true ? "记录日志 : 是" : "记录日志 : 否";
            if (IsSysDns.IsChecked == true)
            {
                IsSysDns.ToolTip = "已设为系统 DNS";
            }
            if (Equals(DnsSettings.ListenIp, IPAddress.Any))
            {
                IsGlobal.ToolTip = "当前监听 : 局域网";
            }
            else if (Equals(DnsSettings.ListenIp, IPAddress.Loopback))
            {
                IsGlobal.ToolTip = "当前监听 : 本地";
            }
            else
            {
                IsGlobal.ToolTip = $"当前监听 : [{DnsSettings.ListenIp}]";
            }
        }
Ejemplo n.º 23
0
 public SB(Snackbar snackbar, SnackbarMessage message)
 {
     this.snackbar = snackbar;
     this.message  = message;
 }