private void buttonSaveStore_Click(object sender, EventArgs e) { try { var store = propertyGrid1.SelectedObject as Store; if (store != null) { PharmacyServiceConfig.Config.CurrentStore = store; ConfigHelper <PharmacyServiceConfig> .SaveConfig(); Db db = null; bool dbConntected = false; try { db = new Db(); DbConnection connection = db.Database.Connection; if (connection.State != ConnectionState.Open) { connection.Open(); } dbConntected = connection.State == ConnectionState.Open; } catch (Exception ex) { LoggerHelper.Instance.Error(ex); db = null; dbConntected = false; } if (dbConntected) { db.Database.Connection.Close(); var dbStore = db.Stores.FirstOrDefault(s => s.Id == store.Id); if (dbStore != null) { StoreBusinessHandler storeBusinessHandler = new StoreBusinessHandler(new RepositoryProvider(new Db()), null); storeBusinessHandler.Save(store); storeBusinessHandler.Save(); MessageBox.Show("保存配置成功", "错误", MessageBoxButtons.OK, MessageBoxIcon.Information); storeBusinessHandler.Dispose(); } else { MessageBox.Show("数据库中店配置有问题", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop); } } else { MessageBox.Show("数据库无法连接", "警告", MessageBoxButtons.OK, MessageBoxIcon.Stop); } } } catch (Exception ex) { LoggerHelper.Instance.Error(ex); MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop); } }
/// <summary> /// 初始化服务上下文 /// 只能调用一次 /// </summary> /// <param name="message"></param> /// <returns></returns> private bool Init(out string message) { lock (this) { if (Inited) { message = string.Empty; return(true); } Inited = false; message = string.Empty; try { Inited = Db.InitDatabase(); } catch (Exception ex) { ex = new Exception("数据库检查与初始化失败!", ex); message = ex.Message; Log.Error(ex); Inited = false; return(Inited); } if (!Inited) { return(false); } try { InitConfigurator(); //下面检查配置文件中的门信息与数据库中门店信息是否一致 var configStore = PharmacyServiceConfig.Config.CurrentStore; Log.Warning("服务门店配置信息:" + configStore.ToJson()); Log.Warning("开始检查门店配置与数据库是否一致!"); var storeBusinessHandler = new StoreBusinessHandler(new RepositoryProvider(new Db()), new ConnectedInfoProvider()); if (storeBusinessHandler.Count(s => s.Id == configStore.Id) == 1) { Log.Warning("门店配置与数据库一致!"); Inited = true; } else { message = "门店配置与数据库不一致"; Log.Error("门店配置与数据库不一致!"); Inited = false; } storeBusinessHandler.Dispose(); storeBusinessHandler = null; return(Inited); } catch (Exception ex) { ex = new Exception("注入服务以及服务相关对象失败!", ex); message = ex.Message; Log.Error(ex); Inited = false; return(Inited); } return(Inited); } }