using IOTContainer.Common; using IOTContainer.Communication; using IOTContainer.MvvmBase; using IOTContainer.View; using System; using System.Configuration; using System.Data; using System.IO; using System.Linq; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; namespace IOTContainer.ViewModel { public class MainWindowViewModel : ViewModelBase { public MainWindowViewModel() { Startup(); } private UserControl _mainUserControl; /// /// 主页显示的用户控件 /// public UserControl MainUserControl { get { return _mainUserControl; } set { base.SetProperty(ref _mainUserControl, value, "MainUserControl"); } } public void Startup() { try { LocalStorage.CheckDBFile(); Log.DeleteLog(); #region 基础字段获取 ComParameters.Parameters.SocketPort = ConfigurationManager.AppSettings["SocketPort"]; ComParameters.Parameters.CmdChrome = ConfigurationManager.AppSettings["cmdChrome"]; var propertyInfos = typeof(ComParameters).GetProperties(); var dt = LocalStorage.SelectPipTable("infos"); if (null != dt) { foreach (DataRow item in dt.Rows) { var property = propertyInfos.FirstOrDefault(p => p.Name == item["key"].ToString()); if (null != property) { var changedValue = Convert.ChangeType(item["value"], property.PropertyType); property.SetValue(ComParameters.Parameters, changedValue, null); } } } //var keys = typeof(ConfigKey).GetFields(); //foreach (var key in keys) //{ // var propertyInfo = typeof(ComParameters).GetProperty(key.Name); // var value = LocalStorage.SelectPipTable("infos", key.Name); // if (!string.IsNullOrEmpty(value)) // { // var changedValue = Convert.ChangeType(value, propertyInfo.PropertyType); // propertyInfo.SetValue(ComParameters.Parameters, changedValue, null); // } //} #endregion #region 字段判断与页面显示 ComParameters.Parameters.MainViewModel = this; if (string.IsNullOrEmpty(ComParameters.Parameters.httpServer) || string.IsNullOrEmpty(ComParameters.Parameters.registerCode)) { //邀请码、http配置页面 MainUserControl = new RegisterView(); } else if (string.IsNullOrEmpty(ComParameters.Parameters.buildingName) || string.IsNullOrEmpty(ComParameters.Parameters.floorName) || string.IsNullOrEmpty(ComParameters.Parameters.devCode) || string.IsNullOrEmpty(ComParameters.Parameters.devType) || string.IsNullOrEmpty(ComParameters.Parameters.devAttr)) { //楼栋楼层注册页面 MainUserControl = new ServiceInfoView(); } else { //主页 MainUserControl = new InitialView(false); } #endregion } catch (Exception e) { Log.MyLog.WriteLogFile("主程序出错:" + e); } } } }