123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- using HandyControl.Interactivity.Commands;
- using Shaker.Model;
- using Shaker.ViewModel;
- using ShakerManger.Data;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Input;
- namespace ShakerManger.ViewModel
- {
- internal class SqlPageViewModel:DisplayViewModel<SqlModel>,ISystemPageViewModel
- {
- public SqlPageViewModel()
- {
- Model.IP = Sql.Default.IP;
- Model.Port = Sql.Default.Port;
- Model.UserName = Sql.Default.UserName;
- Model.Password = Sql.Default.Password;
- Model.DBName = Sql.Default.DBName;
- Model.Anonymous = Sql.Default.Anonymous;
- }
- public string IP
- {
- get => Model.IP;
- set
- {
- if(Model.IP !=value)
- {
- Model.IP = value;
- OnPropertyChanged(nameof(IP));
- }
- }
- }
- public int Port
- {
- get => Model.Port;
- set
- {
- if (Model.Port != value)
- {
- Model.Port = value;
- OnPropertyChanged(nameof(Port));
- }
- }
- }
- public string UserName
- {
- get => Model.UserName;
- set
- {
- if (Model.UserName != value)
- {
- Model.UserName = value;
- OnPropertyChanged(nameof(UserName));
- }
- }
- }
- public string Password
- {
- get => Model.Password;
- set
- {
- if (Model.Password != value)
- {
- Model.Password = value;
- OnPropertyChanged(nameof(Password));
- }
- }
- }
- public string DbName
- {
- get => Model.DBName;
- set
- {
- if (Model.DBName != value)
- {
- Model.DBName = value;
- OnPropertyChanged(nameof(DbName));
- }
- }
- }
- public bool Anonymous
- {
- get => Model.Anonymous;
- set
- {
- if (Model.Anonymous != value)
- {
- Model.Anonymous = value;
- OnPropertyChanged(nameof(Anonymous));
- }
- }
- }
- public string Connectstring => Anonymous ? $"mongodb://{IP}:{Port}" : $"mongodb://{UserName}:{Password}@{IP}:{Port}";
- public ICommand TestConnectCommand =>new DelegateCommand(TestConnect);
- private void TestConnect()
- {
- var result = Sql.Default.TestConnection(Connectstring);
- PromptViewModel.Default.Init();
- PromptViewModel.Default.NoVisibility = System.Windows.Visibility.Collapsed;
- if(result)
- {
- PromptViewModel.Default.Message = "连接成功";
- PromptViewModel.Default.IconType = IconType.Info;
- }
- else
- {
- PromptViewModel.Default.Message = "连接失败";
- PromptViewModel.Default.IconType = IconType.Error;
- }
- PromptViewModel.Default.IsOpen = true;
- }
- public ICommand SaveCommand =>new DelegateCommand(Save);
- private void Save()
- {
- PromptViewModel.Default.Init();
- PromptViewModel.Default.Message = "参数保存后重启后起效,是否继续?";
- PromptViewModel.Default.IconType = IconType.Ask;
- PromptViewModel.Default.YesAction = () =>
- {
- Sql.Default.Save(Model);
- (App.Current as App)?.Restart();
- };
- PromptViewModel.Default.IsOpen = true;
- }
- public override Type View { get; } = typeof(View.SqlPageView);
- private bool isEnabled = true;
- public SystemPageType SystemPageType => SystemPageType.SqlPage;
- public string IconPath { get; } = (string)App.Current.FindResource("SqlIcon");
- public bool IsEnabled { get => isEnabled; set => UpdateProperty(ref isEnabled, value); }
- }
- }
|