public static string GetConnStringByDefinition(IWMSUnitOfWorkDefinition definition) { string connectionString; if (definition.Database == null) { throw new Exception("没有指定当前事务运行环境.UnitOfWorkDefinition.Database is null"); } switch (definition.Database.Value) { case WMSDatabase.Vancl: connectionString = WMSConnectionStrings.ConnStringOfSCM; break; case WMSDatabase.FanKu: connectionString = WMSConnectionStrings.ConnStringOfFanKu; break; case WMSDatabase.Customer: connectionString = WMSConnectionStrings.ConnStringOfCustomer; break; case WMSDatabase.WMSMaster: connectionString = WMSConnectionStrings.ConnStringOfWMSMaster; break; case WMSDatabase.WMSReport: connectionString = WMSConnectionStrings.ConnStringOfWMSReport; break; case WMSDatabase.QMS: connectionString = WMSConnectionStrings.ConnStringOfQMS; break; case WMSDatabase.WMS: connectionString = WMSConnectionStrings.ConnStringOfWMS; break; case WMSDatabase.WarehouseIdSpecified: if (string.IsNullOrEmpty(definition.WarehouseId)) { throw new Exception("请指定事务的仓库Id"); } connectionString = WMSConnectionStrings.GetConnectionStringByWarehouseId(definition.WarehouseId); break; default: connectionString = WMSConnectionStrings.GetConnectionString(definition.Database.Value.ToString()); break; } return(connectionString); }
/// <summary> /// 获取事务管理对象 /// </summary> /// <param name="system">事务运行系统</param> /// <param name="warehouseId">事务运行仓库Id</param> /// <returns></returns> private static IUnitOfWork GetUnitOfWork(WMSDatabase system, string warehouseId) { AssertUtils.ArgumentNotNull(system, "system"); if (system == WMSDatabase.WarehouseIdSpecified && string.IsNullOrEmpty(warehouseId)) { throw new Exception("请指定运行事务的仓库Id"); } IWMSUnitOfWorkDefinition unitOfWorkDefinition = WMSUnitOfWorkDefinition.DefaultDefintion; unitOfWorkDefinition.Database = system; unitOfWorkDefinition.WarehouseId = warehouseId; string connString = ConnectionStringsUtil.GetConnStringByDefinition(unitOfWorkDefinition); if (string.IsNullOrEmpty(connString)) { throw new Exception("根据事务定义配置没有找到相应的连接字符串。"); } return(UnitOfWorkFactory.GetAdoNetUnitOfWork(connString, unitOfWorkDefinition)); }