#region using System; using System.ServiceModel; using CSFrameworkV5.Common; using CSFrameworkV5.DataAccess; #endregion namespace CSFrameworkV5.WCFContract.WCF_Class { [ServiceBehavior(IncludeExceptionDetailInFaults = true)] [WCF_ExceptionBehaviour(typeof(WCF_ExceptionHandler))] public class DataDictService : IDataDictService { public bool CheckNoExists(byte[] loginTicket, string keyValue, string ORM_TypeName) { try { var loginer = WebSecurity.ValidateLoginer(loginTicket); var dict = DALFactory.CreateDalByORM(loginer, ORM_TypeName); return dict.CheckNoExists(keyValue); } catch (Exception ex) { throw new FaultException(ex.Message); } } public bool CheckNoExistsEx(byte[] loginTicket, string keyFieldName, string keyValue, string ORM_TypeName) { try { var loginer = WebSecurity.ValidateLoginer(loginTicket); var dict = DALFactory.CreateDalByORM(loginer, ORM_TypeName); return dict.CheckNoExists(keyFieldName, keyValue); } catch (Exception ex) { throw new FaultException(ex.Message); } } /// /// 删除一条数据字典记录 /// /// /// 主键 /// ORM类型 /// public bool Delete(byte[] loginTicket, string keyValue, string ORM_TypeName) { try { var loginer = WebSecurity.ValidateLoginer(loginTicket); var dict = DALFactory.CreateDalByORM(loginer, ORM_TypeName); //创建DAL层实例 return dict.Delete(keyValue); } catch (Exception ex) { throw new FaultException(ex .Message); //转换为客户端可截取的异常类型(FaultException)信息。 //throw new FaultException("删除记录发生错误!");//或者提示更具体的异常信息,屏蔽WCF系统内部消息。 } } public byte[] GetDataByKey(byte[] loginTicket, string ORM_TypeName, string key) { try { var loginer = WebSecurity.ValidateLoginer(loginTicket); var dict = DALFactory.CreateDalByORM(loginer, ORM_TypeName); var data = dict.GetDataByKey(key); return ZipTools.CompressionObject( ServerLibrary.TableToDataSet(data)); } catch (Exception ex) { throw new FaultException(ex.Message); } } public byte[] GetDataDictByDBTableName(byte[] loginTicket, string tableName, string DBID) { try { if (string.IsNullOrWhiteSpace(tableName) || string.IsNullOrWhiteSpace(DBID)) throw new Exception( "GetDataDictByDBTableName方法缺少DBID/tableName参数值!"); var loginer = WebSecurity.ValidateLoginer(loginTicket); var dal = DALFactory.CreateDalByTableName(loginer, tableName); if (dal == null) dal = new dalBaseDataDict(loginer, tableName); dal.Database = DatabaseProvider.GetDatabase(DBID); var data = dal.GetSummaryData(); return ZipTools.CompressionObject( ServerLibrary.TableToDataSet(data)); } catch (Exception ex) { throw new FaultException(ex.Message); } } public byte[] GetDataDictByTableName(byte[] loginTicket, string tableName) { try { var loginer = WebSecurity.ValidateLoginer(loginTicket); var dal = DALFactory.CreateDalByTableName(loginer, tableName); if (dal == null) dal = new dalBaseDataDict(loginer, tableName); var data = dal.GetSummaryData(); return ZipTools.CompressionObject( ServerLibrary.TableToDataSet(data)); } catch (Exception ex) { throw new FaultException(ex.Message); } } public byte[] GetEmptyTable(byte[] loginTicket, string databaseName, string tableName) { try { var loginer = WebSecurity.ValidateLoginer(loginTicket); var data = new dalCommon(loginer).GetEmptyTable(databaseName, tableName); return ZipTools.CompressionDataSet( ServerLibrary.TableToDataSet(data)); } catch (Exception ex) { throw new FaultException(ex.Message); } } public byte[] GetLookupData(byte[] loginTicket, string tableName) { try { var loginer = WebSecurity.ValidateLoginer(loginTicket); var dal = DALFactory.CreateDalByTableName(loginer, tableName); if (dal == null) dal = new dalBaseDataDict(loginer, tableName); var data = dal.GetLookupData(); return ZipTools.CompressionDataSet( ServerLibrary.TableToDataSet(data)); } catch (Exception ex) { throw new FaultException(ex.Message); } } public byte[] GetLookupDataByDBTableName(byte[] loginTicket, string tableName, string DBID) { try { var loginer = WebSecurity.ValidateLoginer(loginTicket); var dal = DALFactory.CreateDalByTableName(loginer, tableName); if (dal == null) dal = new dalBaseDataDict(loginer, tableName); dal.Database = DatabaseProvider.GetDatabase(DBID); var data = dal.GetLookupData(); return ZipTools.CompressionDataSet( ServerLibrary.TableToDataSet(data)); } catch (Exception ex) { throw new FaultException(ex.Message); } } public byte[] GetLookupDataByTableName(byte[] loginTicket, string tableName) { try { var loginer = WebSecurity.ValidateLoginer(loginTicket); var dal = DALFactory.CreateDalByTableName(loginer, tableName); if (dal == null) dal = new dalBaseDataDict(loginer, tableName); var data = dal.GetLookupData(); return ZipTools.CompressionDataSet( ServerLibrary.TableToDataSet(data)); } catch (Exception ex) { throw new FaultException(ex.Message); } } public byte[] GetSummaryData(byte[] loginTicket, string ORM_TypeName) { try { var loginer = WebSecurity.ValidateLoginer(loginTicket); var dict = DALFactory.CreateDalByORM(loginer, ORM_TypeName); var data = dict.GetSummaryData(); return ZipTools.CompressionObject( ServerLibrary.TableToDataSet(data)); } catch (Exception ex) { throw new FaultException(ex.Message); } } public bool Update(byte[] loginTicket, byte[] bs, string ORM_TypeName) { try { var loginer = WebSecurity.ValidateLoginer(loginTicket); var data = ZipTools.DecompressionDataSet(bs); var dict = DALFactory.CreateDalByORM(loginer, ORM_TypeName); return dict.Update(data); } catch (Exception ex) { throw new FaultException(ex.Message); } } public byte[] UpdateEx(byte[] loginTicket, byte[] bs, string ORM_TypeName) { try { var loginer = WebSecurity.ValidateLoginer(loginTicket); var data = ZipTools.DecompressionDataSet(bs); var dict = DALFactory.CreateDalByORM(loginer, ORM_TypeName); var result = dict.UpdateEx(data); //保存数据 return ZipTools.CompressionObject(result); //序列化返回对象 } catch (Exception ex) { throw new FaultException(ex.Message); } } } }