using Bricscad.ApplicationServices; using Prism.Events; using SWS.CAD.CADFunc.Editor; using SWS.CAD.Event; using SWS.CAD.ViewModels.myViewModelBase; using SWS.CAD.Views; using SWS.Commons; using SWS.Model; using SWS.Service; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Telerik.Windows.Controls; using Unity; namespace SWS.CAD.ViewModels { public class ProjectViewModel : DialogBase { private List projects; public List Projects { get { return this.projects; } set { this.projects = value; RaisePropertyChanged(nameof(Projects)); } } private ec_project _select; public ec_project select { get { return _select; } set { _select = value; RaisePropertyChanged(nameof(select)); } } ProjectService _Service; ConfigService _configService; IEventAggregator _eventAggregator; public ProjectViewModel(IEventAggregator eventAggregator, ProjectService httpService, ConfigService configService) : base() { title = "项目选择"; _eventAggregator = eventAggregator; _Service = httpService; _configService = configService; //_configService.Read(out address, out port, out directory); } public async override void onWindow_loaded(object para) { Projects = (await _Service.GetProjects(1, 200)).Rows; base.onWindow_loaded(para); } public override async void ExecuteOKCommandAsync(object para) { if (select == null) { Application.ShowAlertDialog("请选择一个项目。"); return; } _configService.Save(nameof(ConfigIni.ProjectID), select.ProjectId); GlobalObject.curProject = select; IsBusy = true; var userName = _configService.Read(nameof(ConfigIni.UserName)); var o = await _Service.InitProjInfo(GlobalObject.curProject.ProjectId, userName); IsBusy = false; _eventAggregator.GetEvent().Publish(o); EditorHelper.WriteInfo("进入项目!"); CloseWindowAction?.Invoke();//因为不能用 ExecuteCloseCommand ,没办法把window作为参数带进去 } } }