#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);
|
}
|
}
|
|
/// <summary>
|
/// 删除一条数据字典记录
|
/// </summary>
|
/// <param name="loginTicket"></param>
|
/// <param name="keyValue">主键</param>
|
/// <param name="ORM_TypeName">ORM类型</param>
|
/// <returns></returns>
|
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);
|
}
|
}
|
}
|
}
|