#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);
}
}
}
}