EchoTex_Payroll/HRM.DA/Service/Fund/VoucherSetup/ProcessActivityService.cs
2024-10-14 10:01:49 +06:00

465 lines
13 KiB
C#

using System;
using System.Data;
using Ease.Core.Model;
using Ease.Core.DataAccess;
using Ease.Core;
using System.Collections.Generic;
using Ease.Core.Utility;
using HRM.BO;
using HRM.DA;
//using HRM.BO.Fund;
namespace HRM.DA.Fund
{
public class ProcessActivityService : ServiceTemplate
{
public ProcessActivityService()
{
}
private void MapObject(ProcessActivity ProcessActivity, DataReader dr)
{
base.SetObjectID(ProcessActivity, dr.GetInt32("ActivityID").Value);
ProcessActivity.Serial = dr.GetInt32("Serial").Value;
ProcessActivity.ProjectID = dr.GetInt32("ProjectID").Value;
ProcessActivity.ProcessID = dr.GetInt32("ProcessID").Value;
ProcessActivity.Description = dr.GetString("Description");
ProcessActivity.ActivityRelatedTo = dr.GetInt32("ActivityRelatedTo").Value;
ProcessActivity.RelatedValue = dr.GetInt32("RelatedValue").Value;
ProcessActivity.CreatedBy = dr.GetInt32("CreatedBy").Value;
ProcessActivity.CreatedDate = dr.GetDateTime("CreatedDate").Value;
ProcessActivity.ModifiedBy =
dr.GetInt32("ModifiedBy").Value != null ? dr.GetInt32("ModifiedBy").Value : (0);
ProcessActivity.ModifiedDate = dr.GetDateTime("ModifiedDate") != null
? dr.GetDateTime("ModifiedDate")
: DateTime.MinValue;
base.SetObjectState(ProcessActivity, ObjectState.Saved);
}
protected override T CreateObject<T>(DataReader dr)
{
ProcessActivity ProcessActivity = new ProcessActivity();
MapObject(ProcessActivity, dr);
return ProcessActivity as T;
}
private ProcessActivity CreateObject(DataReader oReader)
{
ProcessActivity oProcessActivity = new ProcessActivity();
MapObject(oProcessActivity, oReader);
return oProcessActivity;
}
private List<ProcessActivity> CreateObjects(IDataReader oReader)
{
List<ProcessActivity> oProcessActivitys = new List<ProcessActivity>();
DataReader oreader = new DataReader(oReader);
while (oreader.Read())
{
ProcessActivity oItem = CreateObject(oreader);
oProcessActivitys.Add(oItem);
}
return oProcessActivitys;
}
#region Service Implementation
#region GetMaxSerial
public int GetMaxSerial()
{
int maxSerial = 0;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
maxSerial = ProcessActivityDA.GetMaxSerial(tc);
}
catch (Exception e)
{
throw e;
}
return maxSerial;
}
#endregion
#region Insert
public bool Save(ProcessActivity processActivity)
{
//string serviceName = "FM.Services." + processActivity.SupportObjType.Name + "Service";
//string sPath = Application.StartupPath + @"\FM.Services.dll";
//Assembly oAssembly = Assembly.LoadFile(sPath);
//Type tempService = oAssembly.GetType(serviceName, true);
//ConstructorInfo cInfo = tempService.GetConstructor(new Type[] { });
//object oSerInstance = cInfo.Invoke(null);
//MethodInfo mInfo = tempService.GetMethod("UpdateActivityInfo", BindingFlags.Instance|BindingFlags.Public| BindingFlags.NonPublic);//null ,new Type[] { typeof(TransactionContext), typeof(Ease.CoreV35.Model.ID), typeof(Ease.CoreV35.Model.ID) }, null);
//MethodInfo mInfo = tempService.GetMethod("UpdateActivityInfo", BindingFlags.NonPublic,null ,new Type[] { typeof(TransactionContext), typeof(Ease.CoreV35.Model.ID), typeof(Ease.CoreV35.Model.ID) }, null);
TransactionContext tc = null;
bool flag = false;
try
{
tc = TransactionContext.Begin(true);
ActivityVoucherSetupService activitySetupService = new ActivityVoucherSetupService();
if (processActivity.IsNew)
{
int id = tc.GenerateID("ProcessActivity", "ActivityID");
base.SetObjectID(processActivity, (id));
ProcessActivityDA.Insert(tc, processActivity);
}
else
{
processActivity.ModifiedBy = processActivity.CreatedBy;
processActivity.ModifiedDate = DateTime.Now;
ProcessActivityDA.Update(tc, processActivity);
}
foreach (ActivityVoucherSetup oNVS in processActivity.VoucherSetupCol)
{
if (oNVS.IsNew)
{
int setupID = tc.GenerateID("ActivityVoucherSetup", "SetupID");
base.SetObjectID(oNVS, (setupID));
oNVS.Status = EnumVoucherSetupStatus.Active;
oNVS.CreatedBy = oNVS.CreatedBy;
oNVS.CreatedDate = DateTime.Now;
oNVS.ActivityID = processActivity.ID;
ActivityVoucherSetupDA.Insert(tc, oNVS);
}
}
tc.End();
flag = true;
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return flag;
}
#endregion
#region UpdatePosition
public void UpdatePosition(List<ProcessActivity> processActivitys)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
foreach (ProcessActivity item in processActivitys)
{
ProcessActivityDA.UpdatePosition(tc, item);
}
tc.End();
}
catch (Exception e)
{
throw new ServiceException("Failed to update position ProcessActivity", e);
}
}
#endregion
#region Delete
public void Delete(int id)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
ProcessActivityDA.Delete(tc, id);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
#endregion
#region Get(By ID)
public ProcessActivity Get(int ID)
{
#region Cache Header
ProcessActivity ProcessActivity = new ProcessActivity();
if (ProcessActivity != null)
return ProcessActivity;
#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
IDataReader dr = ProcessActivityDA.Get(tc, ID);
DataReader oreader = new DataReader(dr);
ProcessActivity = CreateObject(oreader);
dr.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
#region Cache Footer
#endregion
return ProcessActivity;
}
#endregion
#region GetbyProjectID(By ID)
public List<ProcessActivity> GetbyProjectID(int ID)
{
#region Cache Header
List<ProcessActivity> ProcessActivity = new List<ProcessActivity>();
if (ProcessActivity != null)
return ProcessActivity;
#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
IDataReader dr = ProcessActivityDA.GetbyProjectID(tc, ID);
ProcessActivity = CreateObjects(dr);
dr.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
#region Cache Footer
#endregion
return ProcessActivity;
}
#endregion
#region GetbyProcessID(By ID)
public List<ProcessActivity> GetbyProcessID(int ID)
{
#region Cache Header
List<ProcessActivity> ProcessActivity = new List<ProcessActivity>();
if (ProcessActivity != null)
return ProcessActivity;
#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
IDataReader dr = ProcessActivityDA.GetbyProcessID(tc, ID);
ProcessActivity = CreateObjects(dr);
dr.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
#region Cache Footer
#endregion
return ProcessActivity;
}
#endregion
#region GetbyProjectProcessID(By ID)
public List<ProcessActivity> GetbyProjectProcessID(int Projectid, int Processid)
{
#region Cache Header
List<ProcessActivity> ProcessActivity = new List<ProcessActivity>();
if (ProcessActivity != null)
return ProcessActivity;
#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
IDataReader dr = ProcessActivityDA.GetbyProjectProcessID(tc, Projectid, Processid);
ProcessActivity = CreateObjects(dr);
dr.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
#region Cache Footer
#endregion
return ProcessActivity;
}
#endregion
#region Get()
public List<ProcessActivity> Getbyfundtype(int fundtypeid)
{
#region Cache Header
List<ProcessActivity> ProcessActivitys = new List<ProcessActivity>();
if (ProcessActivitys != null)
return ProcessActivitys;
#endregion
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
IDataReader dr = ProcessActivityDA.Get(tc, fundtypeid);
ProcessActivitys = CreateObjects(dr);
dr.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
#region Cache Footer
#endregion
return ProcessActivitys;
}
#endregion
#region GetTable
public DataTable GetTable(int fundtypeid)
{
DataTable dTbl = new DataTable("ProcessActivitys");
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
IDataReader ir = ProcessActivityDA.Get(tc, fundtypeid);
dTbl.Load(ir);
ir.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 dTbl;
}
#endregion
#endregion
}
}