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

448 lines
14 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using Ease.Core.Model;
using Ease.Core.DataAccess;
using Ease.Core.Utility;
using HRM.BO;
namespace HRM.DA
{
public class LoanCategoryService : ServiceTemplate //, ILoanCategoryService
{
public LoanCategoryService()
{
}
#region Function
#region Child Function
//private void MapFundRelation(LoanCategory.LoanCategoryFundRelation fundRelation, DataReader dr)
//{
// fundRelation.LoanCategoryID = dr.GetID("LoanCategoryID");
// fundRelation.FundTypeID = dr.GetID("FundTypeID");
// fundRelation.ProjectID = dr.GetID("ProjectID");
// base.SetObjectID(fundRelation, dr.GetID("LoanCategoryID", "FundTypeID"));
// base.SetObjectState(fundRelation, ObjectState.Saved);
//}
//private LoanCategory.LoanCategoryFundRelation CreateFundRelations(DataReader dr)
//{
// LoanCategory.LoanCategoryFundRelation fundRelation = new LoanCategory.LoanCategoryFundRelation();
// MapFundRelation(fundRelation, dr);
// return fundRelation;
//}
//private void FillFundRelations(LoanCategory parent, DataReader dr)
//{
// while (dr.Read())
// {
// LoanCategory.LoanCategoryFundRelation item = this.CreateFundRelations(dr);
// parent.LoanFundRelations.Add(item);
// }
//}
//internal void loadChildren(TransactionContext tc, LoanCategory loanCategory)
//{
// try
// {
// if (loanCategory != null && loanCategory.ID != null && loanCategory.ID != 0)
// {
// //Get FundRelations
// DataReader dr = new DataReader(LoanCategoryDA.GetFundRelations(tc, loanCategory.ID));
// FillFundRelations(loanCategory, dr);
// dr.Close();
// }
// }
// catch (Exception e)
// {
// throw e;
// }
//}
#endregion
private void MapObject(LoanCategory loanCategory, DataReader dr)
{
base.SetObjectID(loanCategory, dr.GetInt32("LoanCategoryID").Value);
loanCategory.DefaultInterestRate = dr.GetDouble("DefaultInterestRate").Value;
loanCategory.LoanCategoryCode = dr.GetString("LoanCategoryCode");
loanCategory.Description = dr.GetString("Description");
loanCategory.UserObjectName = dr.GetString("UserObjectName");
loanCategory.IsActive = (EnumLoanCategoryStatus)dr.GetInt16("IsActive").Value;
loanCategory.MaxAlowableFlatAmount = dr.GetDouble("MaxAlowableFlatAmount");
loanCategory.MaxInstallment = dr.GetInt32("MaxInstallment").Value;
loanCategory.MinInstallment = dr.GetInt32("MinInstallment").Value;
loanCategory.PercentageofFund = dr.GetDouble("PercentageofFund");
loanCategory.Version = dr.GetInt16("Version").Value;
loanCategory.CreatedBy = dr.GetInt32("CreatedBy").Value;
loanCategory.CreatedDate = dr.GetDateTime("CreatedDate").Value;
loanCategory.ModifiedBy = dr.GetInt32("ModifiedBy");
loanCategory.ModifiedDate = dr.GetDateTime("ModifiedDate").Value;
loanCategory.ProjectID = dr.GetInt32("ProjectID").Value;
base.SetObjectState(loanCategory, Ease.Core.ObjectState.Saved);
}
protected override T CreateObject<T>(DataReader dr)
{
LoanCategory loanCategory = new LoanCategory();
MapObject(loanCategory, dr);
return loanCategory as T;
}
protected LoanCategory CreateObject(DataReader oReader)
{
LoanCategory loanCategory = new LoanCategory();
MapObject(loanCategory, oReader);
return loanCategory;
}
//internal void SaveFundRelation(TransactionContext tc, LoanCategory loanCategory)
//{
// try
// {
// LoanCategoryDA.Delete(tc, loanCategory.ID);
// //Insert fundRelations
// foreach (var item in loanCategory.LoanFundRelations)
// {
// item.LoanCategoryID = loanCategory.ID;
// base.SetObjectID(item, ID.FromComplex(item.LoanCategoryID.Integer, item.FundTypeID.Integer));
// LoanCategoryDA.Insert(tc, item);
// }
// }
// catch (Exception e)
// {
// throw e;
// }
//}
#endregion
#region Service Implementation
#region save
//public void Insert(LoanCategory loanCategory)
//{
// TransactionContext tc = null;
// try
// {
// tc = TransactionContext.Begin(true);
// if (!loanCategory.IsNew)
// {
// if (!loanCategory.IsModified)
// {
// SaveFundRelation(tc, loanCategory);
// tc.End();
// return;
// }
// else
// {
// //tc = TransactionContext.Begin(true);
// loanCategory.Version = 1;
// //loanCategory.IsActive = EnumLoanCategoryStatus.Inactive;
// LoanCategoryDA.Update(tc, loanCategory);
// //loanCategory.IsActive = EnumLoanCategoryStatus.Active;
// loanCategory.Version = 0;
// }
// }
// int id = base.GetNewID(tc, "LoanCategory", "LoanCategoryID");
// base.SetObjectID(loanCategory, ID.FromInteger(id));
// LoanCategoryDA.Insert(tc, loanCategory);
// SaveFundRelation(tc, loanCategory);
// tc.End();
// CacheInfo.ClearCache(typeof(LoanCategoryService).FullName);
// }
// catch (Exception e)
// {
// #region Handle Exception
// if (tc != null)
// tc.HandleError();
// ExceptionLog.Write(e);
// throw new ServiceException(e.Message, e);
// #endregion
// }
//}
#endregion
#region Get()
public LoanCategory Get(int loanCategoryID, bool isGetChild)
{
LoanCategory loanCategory = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(LoanCategoryDA.Get(tc, loanCategoryID));
if (dr.Read())
{
loanCategory = this.CreateObject<LoanCategory>(dr);
}
dr.Close();
//if (isGetChild)
//{
// loadChildren(tc, loanCategory);
//}
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return loanCategory;
}
//public LoanCategory Get(string loanCategoryCode, bool isGetChild)
//{
// #region Cache Header
// LoanCategory loanCategory = _cache["Get", loanCategoryCode, isGetChild] as LoanCategory;
// if (loanCategory != null)
// return loanCategory;
// #endregion
// TransactionContext tc = null;
// try
// {
// tc = TransactionContext.Begin();
// DataReader dr = new DataReader(LoanCategoryDA.Get(tc, loanCategoryCode));
// if (dr.Read())
// {
// loanCategory = this.CreateObject<LoanCategory>(dr);
// }
// dr.Close();
// if (isGetChild)
// {
// loadChildren(tc, loanCategory);
// }
// 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
// _cache.Add(loanCategory, "Get", loanCategoryCode, isGetChild);
// #endregion
// return loanCategory;
// }
public List<LoanCategory> Get()
{
List<LoanCategory> loanCategorys = new List<LoanCategory>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(LoanCategoryDA.Get(tc));
loanCategorys = base.CreateObjects<LoanCategory>(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
}
return loanCategorys;
}
public List<LoanCategory> Get(EnumLoanCategoryStatus status)
{
List<LoanCategory> loanCategorys = new List<LoanCategory>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(LoanCategoryDA.Get(tc, status));
loanCategorys = base.CreateObjects<LoanCategory>(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
}
return loanCategorys;
}
#endregion
#region GetTable
public DataTable GetTable()
{
DataTable dTbl = new DataTable("LoanCategorys");
//TransactionContext tc = null;
//try
//{
// tc = TransactionContext.Begin();
// IDataReader ir = LoanCategoryDA.Get(tc);
// 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
#region Change Status
public void ChangeStatus(LoanCategory loanCategory, EnumLoanCategoryStatus status)
{
TransactionContext tc = null;
try
{
//int activeStatus = Convert.ToInt16(status);
tc = TransactionContext.Begin(true);
//loanCategory.Version = 1;
LoanCategoryDA.ChangeStatus(tc, loanCategory, status);
tc.End();
// CacheInfo.ClearCache(typeof(LoanCategoryService).FullName);
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
#endregion
#region IsExists
public bool IsExist(string code, int version)
{
bool exists = false;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
exists = LoanCategoryDA.IsExist(tc, code, version);
tc.End();
}
catch (Exception e)
{
throw new ServiceException("Failed to Check by code" + e.Message, e);
}
return exists;
}
#endregion
#region IsIssued
public bool IsIssued(int loancatID)
{
bool isIssued = false;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
isIssued = LoanCategoryDA.IsIssued(tc, loancatID);
tc.End();
}
catch (Exception e)
{
throw new ServiceException("Failed to Check by ID" + e.Message, e);
}
return isIssued;
}
#endregion
#region Update Activity
internal void UpdateActivityInfo(TransactionContext tc, int ActivityID, int RecordID)
{
try
{
LoanCategoryDA.UpdateActivity(tc, ActivityID, RecordID);
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
}
#endregion
#endregion
}
}