Пример #1
0
        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);
            }
        }
Пример #2
0
 /// <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);
     }
 }