EchoTex_Payroll/HRM.DA/Service/SearchTools/QueryToolService.cs

252 lines
9.3 KiB
C#
Raw Permalink Normal View History

2024-10-14 10:01:49 +06:00
using System;
using System.Collections.Generic;
using System.Text;
using Ease.Core.DataAccess;
using Ease.Core.Model;
using Ease.Core.Utility;
using HRM.BO;
using HRM.BO.SearchTools;
using HRM.DA.DA.SearchTools;
namespace HRM.DA.Service.SearchTools
{
public class QueryToolService : ServiceTemplate, IQueryToolService
{
public QueryToolService()
{
}
private void MapObject(QueryTool item, DataReader dataReader)
{
base.SetObjectID(item, dataReader.GetInt32("QueryToolID").Value);
item.SearchString = dataReader.GetString("SearchString");
item.Name = dataReader.GetString("Name");
item.Description = dataReader.GetString("Description");
item.SQL = dataReader.GetString("SQL");
item.QTModuleType = (EnumQTModuleType)dataReader.GetInt32("QTModuleType");
this.SetObjectState(item, Ease.Core.ObjectState.Saved);
}
protected override T CreateObject<T>(DataReader dataReader)
{
QueryTool item = new QueryTool();
MapObject(item, dataReader);
return item as T;
}
protected QueryTool CreateObject(DataReader dataReader)
{
QueryTool item = new QueryTool();
MapObject(item, dataReader);
return item;
}
// QTColumn
private void MapObjectQTColumn(QTColumn item, DataReader dataReader)
{
base.SetObjectID(item, dataReader.GetInt32("QTColumnID").Value);
item.QueryToolID = dataReader.GetInt32("QueryToolID").Value;
item.ColumnID = dataReader.GetInt32("ColumnID").Value;
item.Alignment = (ColumnAlignmentEnum)dataReader.GetInt32("Alignment").Value;
item.Aggregate = dataReader.GetString("Aggregate");
item.Format = dataReader.GetString("Format");
item.Caption = dataReader.GetString("Caption");
this.SetObjectState(item, Ease.Core.ObjectState.Saved);
}
private QTColumn CreateComponentQtColumn(DataReader dataReader)
{
QTColumn item = new QTColumn();
MapObjectQTColumn(item, dataReader);
return item;
}
private List<QTColumn> CreateComponentsQTColumn(DataReader dataReader)
{
List<QTColumn> items = new List<QTColumn>();
while (dataReader.Read())
{
QTColumn item = new QTColumn();
item = CreateComponentQtColumn(dataReader);
items.Add(item);
}
return items;
}
// QTSearchColumn
private void MapObjectQTSearchColumn(QTSearchColumn item, DataReader dataReader)
{
base.SetObjectID(item, dataReader.GetInt32("QTSearchColumnID").Value);
item.QueryToolID = dataReader.GetInt32("QueryToolID").Value;
item.ColumnID = dataReader.GetInt32("ColumnID").Value;
item.Caption = dataReader.GetString("Caption");
this.SetObjectState(item, Ease.Core.ObjectState.Saved);
}
private QTSearchColumn CreateComponentQTSearchColumn(DataReader dataReader)
{
QTSearchColumn item = new QTSearchColumn();
MapObjectQTSearchColumn(item, dataReader);
return item;
}
private List<QTSearchColumn> CreateComponentsQTSearchColumn(DataReader dataReader)
{
List<QTSearchColumn> items = new List<QTSearchColumn>();
while (dataReader.Read())
{
QTSearchColumn item = new QTSearchColumn();
item = CreateComponentQTSearchColumn(dataReader);
items.Add(item);
}
return items;
}
// QTAuthorization
private void MapObjectQTAuthorization(QTAuthorization item, DataReader dataReader)
{
base.SetObjectID(item, dataReader.GetInt32("QTAuthorizationID").Value);
item.QueryToolID = dataReader.GetInt32("QueryToolID").Value;
item.EmployeeID = dataReader.GetInt32("EmployeeID").Value;
item.AuthorizeDate = dataReader.GetDateTime("AuthorizeDate").Value;
item.Count = dataReader.GetInt32("Count").Value;
this.SetObjectState(item, Ease.Core.ObjectState.Saved);
}
private QTAuthorization CreateComponentQTAuthorization(DataReader dataReader)
{
QTAuthorization item = new QTAuthorization();
MapObjectQTAuthorization(item, dataReader);
return item;
}
private List<QTAuthorization> CreateComponentsQTAuthorization(DataReader dataReader)
{
List<QTAuthorization> items = new List<QTAuthorization>();
while (dataReader.Read())
{
QTAuthorization item = new QTAuthorization();
item = CreateComponentQTAuthorization(dataReader);
items.Add(item);
}
return items;
}
public List<QueryTool> GetAll()
{
TransactionContext tc = null;
List<QueryTool> items = new List<QueryTool>();
List<QTColumn> qtColumnList = new List<QTColumn>();
List<QTSearchColumn> qtSearchColumnsList = new List<QTSearchColumn>();
List<QTAuthorization> qtAuthorizationsList = new List<QTAuthorization>();
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(QueryToolDA.GetAllQueryTool(tc));
items = this.CreateObjects<QueryTool>(dr);
dr.Close();
foreach (QueryTool queryTool in items)
{
DataReader dr2 = new DataReader(QueryToolDA.GetQTColumns(tc, queryTool.ID));
queryTool.DataColumns = this.CreateComponentsQTColumn(dr2);
dr2.Close();
DataReader dr3 = new DataReader(QueryToolDA.GetQTSearchColumn(tc, queryTool.ID));
queryTool.SearchColumns = this.CreateComponentsQTSearchColumn(dr3);
dr3.Close();
DataReader dr4 = new DataReader(QueryToolDA.GetQTAuthorization(tc, queryTool.ID));
queryTool.QtAuthorizations = this.CreateComponentsQTAuthorization(dr4);
dr4.Close();
}
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return items;
}
public void SaveQueryTool(QueryTool item)
{
TransactionContext tc = null;
try
{
int QueryToolID = 0;
tc = TransactionContext.Begin(true);
if (item.IsNew)
{
QueryToolID = tc.GenerateID("QueryTool", "QueryToolID");
base.SetObjectID(item, QueryToolID);
QueryToolDA.Insert(tc, item);
}
else
{
QueryToolDA.Update(tc, item);
QueryToolDA.DeleteChildData(tc, QueryToolID, "QTColumn");
QueryToolDA.DeleteChildData(tc, QueryToolID, "QTSearchColumn");
QueryToolDA.DeleteChildData(tc, QueryToolID, "QTAuthorization");
}
foreach (QTColumn itemDataColumn in item.DataColumns)
{
int id = tc.GenerateID("QTColumn", "QTColumnID");
base.SetObjectID(itemDataColumn, id);
/*this.SetObjectID(item, (QueryToolDA.GetNewID(tc, "QTColumn", "QTColumnID")));*/
itemDataColumn.QueryToolID = QueryToolID;
QueryToolDA.Insert(tc, itemDataColumn);
}
foreach (QTSearchColumn itemSearchColumn in item.SearchColumns)
{
int id = tc.GenerateID("QTSearchColumn", "QTSearchColumnID");
base.SetObjectID(itemSearchColumn, id);
/*this.SetObjectID(item, (QueryToolDA.GetNewID(tc, "QTSearchColumn", "QTSearchColumnID")));*/
itemSearchColumn.QueryToolID = QueryToolID;
QueryToolDA.Insert(tc, itemSearchColumn);
}
foreach (QTAuthorization itemQtAuthorization in item.QtAuthorizations)
{
int id = tc.GenerateID("QTAuthorization", "QTAuthorizationID");
base.SetObjectID(itemQtAuthorization, id);
/*this.SetObjectID(item, (QueryToolDA.GetNewID(tc, "QTAuthorization", "QTAuthorizationID")));*/
itemQtAuthorization.QueryToolID = QueryToolID;
QueryToolDA.Insert(tc, itemQtAuthorization);
}
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
}
}