EchoTex_Payroll/HRM.DA/Service/Organogram/OrganogramService.cs
2024-10-14 10:01:49 +06:00

1176 lines
41 KiB
C#

using System;
using System.Data;
using System.Linq;
using Ease.Core.Model;
using Ease.Core.DataAccess;
using HRM.BO;
using System.Collections.Generic;
using Ease.Core.Utility;
namespace HRM.DA
{
#region Organogram Service
public class OrganogramService : ServiceTemplate, IOrganogramService
{
#region Private functions and declaration
public OrganogramService()
{
}
private void MapObject(OrganogramBasic oOrganogram, DataReader oReader)
{
base.SetObjectID(oOrganogram, oReader.GetInt32("OrganogramID").Value);
oOrganogram.PositionName = oReader.GetString("PositionName");
oOrganogram.ParentID = oReader.GetInt32("ParentID");
oOrganogram.Tier = oReader.GetInt32("Tier").Value;
oOrganogram.UniqueId = oReader.GetInt32("UniqueId").Value;
//oOrganogram.PositionTypeID = oReader.GetID("PositionTypeID");
oOrganogram.PositionNo = oReader.GetString("PositionNo");
oOrganogram.CompanyID = oReader.GetInt32("CompanyID", 0);
oOrganogram.DepartmentID = oReader.GetInt32("DepartmentID").Value;
oOrganogram.FunctionID = oReader.GetInt32("FunctionID", 0);
oOrganogram.GradeID = oReader.GetInt32("GradeID");
oOrganogram.DesignationID = oReader.GetInt32("DesignationID").Value;
oOrganogram.LocationID = oReader.GetInt32("LocationID").Value;
//oOrganogram.ReportingNodeID = oReader.GetID("RepotingNodeID");
oOrganogram.Tier = oReader.GetInt32("Tier").Value;
oOrganogram.Sequence = oReader.GetInt32("SequenceNO").Value;
oOrganogram.Status = (EnumStatus)oReader.GetInt32("Status").Value;
oOrganogram.JDNo = oReader.GetString("JDNo");
oOrganogram.RevisionNo = oReader.GetString("RevisionNo") == null ? "" : oReader.GetString("RevisionNo");
oOrganogram.RevisionDate = oReader.GetDateTime("RevisionDate").GetValueOrDefault();
oOrganogram.CreatedBy = oReader.GetInt32("CreatedBy").Value;
oOrganogram.CreatedDate = oReader.GetDateTime("CreationDate").Value;
oOrganogram.ModifiedBy = oReader.GetInt32("ModifiedBy");
oOrganogram.ModifiedDate = oReader.GetDateTime("ModifiedDate");
this.SetObjectState(oOrganogram, Ease.Core.ObjectState.Saved);
}
protected override T CreateObject<T>(DataReader oReader)
{
OrganogramBasic oOrganogram = new OrganogramBasic();
MapObject(oOrganogram, oReader);
return oOrganogram as T;
}
private void MapOrganAuthorityObject(OrganogramAuthority organAuthority, DataReader oReader)
{
base.SetObjectID(organAuthority, oReader.GetInt32("OrganAuthorityID").Value);
organAuthority.NodeID = oReader.GetInt32("NodeID", 0);
organAuthority.AuthorityType = (EnumAuthorityType)oReader.GetInt32("AuthorityType").Value;
organAuthority.ChildNodeID = oReader.GetInt32("ChildNodeID", 0);
organAuthority.EmployeeID = oReader.GetInt32("EmployeeID", 0);
//organAuthority.ModifiedBy = oReader.GetID("ModifiedBy");
// organAuthority.ModifiedDate = oReader.GetDateTime("ModifiedDate").Value;
this.SetObjectState(organAuthority, Ease.Core.ObjectState.Saved);
}
protected List<OrganogramAuthority> CreateOrganAuthorityObject(DataReader oReader)
{
List<OrganogramAuthority> organAuthorities = new List<OrganogramAuthority>();
while (oReader.Read())
{
OrganogramAuthority organAuthority = new OrganogramAuthority();
MapOrganAuthorityObject(organAuthority, oReader);
organAuthorities.Add(organAuthority);
}
return organAuthorities;
}
private void MapOrganDelegationObject(OrganogramDelegation organDelegation, DataReader oReader)
{
base.SetObjectID(organDelegation, oReader.GetInt32("OrganDelegationID").Value);
organDelegation.NodeID = oReader.GetInt32("NodeID", 0);
organDelegation.EmployeeID = oReader.GetInt32("EmployeeID", 0);
organDelegation.FromDate = oReader.GetDateTime("FromDate").Value;
organDelegation.ToDate = oReader.GetDateTime("ToDate").Value;
organDelegation.DelegationType = oReader.GetString("DelegationType");
organDelegation.IsActive = oReader.GetBoolean("IsActive").Value;
organDelegation.CreatedBy = oReader.GetInt32("CreatedBy", 0);
organDelegation.CreatedDate = oReader.GetDateTime("CreationDate").Value;
organDelegation.ModifiedBy = oReader.GetInt32("ModifiedBy", 0);
organDelegation.ModifiedDate = oReader.GetDateTime("ModifiedDate");
this.SetObjectState(organDelegation, Ease.Core.ObjectState.Saved);
}
public List<Employee> GetOrganogramAutoriyEmployee(List<Employee> oEmps, List<OrganogramEmployee> oOrgEmployees, List<OrganogramBasic> oOrgBasics, List<OrganogramAuthority> oOrgAuthorities, EnumAuthorityType authType, Employee oEmployee)
{
List<Employee> oInternalEmployees = new List<Employee>();
OrganogramEmployee oORgEmployee = oOrgEmployees.FirstOrDefault(x => x.EmployeeID == oEmployee.ID);
if (oORgEmployee != null)
{
OrganogramBasic orgBasic = oOrgBasics.FirstOrDefault(x => x.ID == oORgEmployee.NodeID);
if (orgBasic != null)
{
List<OrganogramAuthority> oOrgAuthority = oOrgAuthorities.Where(x => x.NodeID == orgBasic.ID && x.AuthorityType == authType).ToList();
//StringBuilder sb = new StringBuilder();
foreach (OrganogramAuthority item in oOrgAuthority)
{
OrganogramBasic orgBasicTemp = oOrgBasics.FirstOrDefault(x => x.ID == item.ChildNodeID);
if (orgBasicTemp != null)
{
Employee oEmpTemp = oEmps.FirstOrDefault(x => x.EmployeeNo.Trim().ToUpper() == orgBasicTemp.PositionNo.ToString().Trim());
if (oEmpTemp != null)
{
oInternalEmployees.Add(oEmpTemp);
//sb.AppendFormat("{0},", oEmpTemp.Name);
}
}
}
}
}
return oInternalEmployees;
}
protected List<OrganogramDelegation> CreateOrganDelegationObject(DataReader oReader)
{
List<OrganogramDelegation> organDelegations = new List<OrganogramDelegation>();
while (oReader.Read())
{
OrganogramDelegation organDelegation = new OrganogramDelegation();
MapOrganDelegationObject(organDelegation, oReader);
organDelegations.Add(organDelegation);
}
return organDelegations;
}
private void MapOrganJobDescObject(OrganogramJobDesc organJobDesc, DataReader oReader)
{
base.SetObjectID(organJobDesc, oReader.GetInt32("OrganJobDescID").Value);
organJobDesc.NodeID = oReader.GetInt32("NodeID", 0);
organJobDesc.Purpose = oReader.GetString("Purpose");
organJobDesc.JobSummery = oReader.GetString("JobSummery");
organJobDesc.Experience = oReader.GetString("Experience");
organJobDesc.Education = oReader.GetString("Education");
organJobDesc.CreatedBy = oReader.GetInt32("CreatedBy", 0);
organJobDesc.CreatedDate = oReader.GetDateTime("CreationDate").Value;
organJobDesc.ModifiedBy = oReader.GetInt32("ModifiedBy", 0);
//organDelegation.ModifiedDate = oReader.GetDateTime("ModifiedDate");
this.SetObjectState(organJobDesc, Ease.Core.ObjectState.Saved);
}
protected List<OrganogramJobDesc> CreateOrganJobDescObject(DataReader oReader)
{
List<OrganogramJobDesc> organJobDescs = new List<OrganogramJobDesc>();
while (oReader.Read())
{
OrganogramJobDesc organJobDesc = new OrganogramJobDesc();
MapOrganJobDescObject(organJobDesc, oReader);
organJobDescs.Add(organJobDesc);
}
return organJobDescs;
}
private void MapOrganResponsibilityObject(OrganogramResponsibility organResp, DataReader oReader)
{
base.SetObjectID(organResp, oReader.GetInt32("OrganResponsibilityID").Value);
organResp.NodeID = oReader.GetInt32("NodeID", 0);
organResp.Responsibility = oReader.GetString("Responsibility");
organResp.IsPrimary = oReader.GetBoolean("IsPrimary").Value;
//organResp.CreatedBy = oReader.GetID("CreatedBy");
//organResp.CreatedDate = oReader.GetDateTime("CreationDate").Value;
//organResp.ModifiedBy = oReader.GetID("ModifiedBy");
//organResp.ModifiedDate = oReader.GetDateTime("ModifiedDate").Value;
this.SetObjectState(organResp, Ease.Core.ObjectState.Saved);
}
protected List<OrganogramResponsibility> CreateOrganResponsibilityObject(DataReader oReader)
{
List<OrganogramResponsibility> organResponsibilities = new List<OrganogramResponsibility>();
while (oReader.Read())
{
OrganogramResponsibility organResponsibility = new OrganogramResponsibility();
MapOrganResponsibilityObject(organResponsibility, oReader);
organResponsibilities.Add(organResponsibility);
}
return organResponsibilities;
}
private void MapOrganSkilLevelObject(OrganogramSkillLevel organSlilLevel, DataReader oReader)
{
base.SetObjectID(organSlilLevel, oReader.GetInt32("OrganSkillLevelID").Value);
organSlilLevel.NodeID = oReader.GetInt32("NodeID", 0);
//organSlilLevel.NodeResponsibilityID = oReader.GetID("NodeResponsibilityID");
organSlilLevel.LevelID = oReader.GetInt32("LevelID", 0);
organSlilLevel.SkillID = oReader.GetInt32("SkillID", 0);
//organSlilLevel.CreatedBy = oReader.GetID("CreatedBy");
//organSlilLevel.CreatedDate = oReader.GetDateTime("CreationDate").Value;
//organSlilLevel.ModifiedBy = oReader.GetID("ModifiedBy");
//organSlilLevel.ModifiedDate = oReader.GetDateTime("ModifiedDate").Value;
this.SetObjectState(organSlilLevel, Ease.Core.ObjectState.Saved);
}
protected List<OrganogramSkillLevel> CreateOrganSkilLevelObject(DataReader oReader)
{
List<OrganogramSkillLevel> organSkilLevels = new List<OrganogramSkillLevel>();
while (oReader.Read())
{
OrganogramSkillLevel organSkilLevel = new OrganogramSkillLevel();
MapOrganSkilLevelObject(organSkilLevel, oReader);
organSkilLevels.Add(organSkilLevel);
}
return organSkilLevels;
}
private void MapOrganPositionObject(OrganogramPosition OrganPosition, DataReader oReader)
{
base.SetObjectID(OrganPosition, oReader.GetInt32("OrganPositionID").Value);
OrganPosition.NodeID = oReader.GetInt32("NodeID").Value;
OrganPosition.PositionTypeID = oReader.GetInt32("PositionTypeID").Value;
// OrganPosition.CreatedBy = oReader.GetInt32("CreatedBy").Value;
//OrganPosition.CreatedDate = oReader.GetDateTime("CreationDate").Value;
// OrganPosition.ModifiedBy = oReader.GetID("ModifiedBy");
// OrganPosition.ModifiedDate = oReader.GetDateTime("ModifiedDate").Value;
this.SetObjectState(OrganPosition, Ease.Core.ObjectState.Saved);
}
protected List<OrganogramPosition> CreateOrganPositionObject(DataReader oReader)
{
List<OrganogramPosition> organPositions = new List<OrganogramPosition>();
while (oReader.Read())
{
OrganogramPosition organPosition = new OrganogramPosition();
MapOrganPositionObject(organPosition, oReader);
organPositions.Add(organPosition);
}
return organPositions;
}
#endregion
#region Service implementation
#region Insert
public int Save(OrganogramBasic oOrganogram)
{
TransactionContext tc = null;
int id=0;
try
{
tc = TransactionContext.Begin(true);
id = this.Save(tc, oOrganogram);
tc.End();
return oOrganogram.ID;
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
//string smessage = "Faliled to save Organogram (table:" + tableName + ") for the Position:("
// + oOrganogram.PositionNo + ") " + oOrganogram.PositionName + ". Error :";
throw new ServiceException(e.Message, e);
#endregion
}
return id;
}
public int Save(TransactionContext tc ,OrganogramBasic oOrganogram)
{
try
{
int id = 0;
if (oOrganogram.IsNew)
{
id = tc.GenerateID("Organogram", "OrganogramID");
base.SetObjectID(oOrganogram, (id));
OrganogramDA.Insert(tc, oOrganogram);
}
else
{
OrganogramDA.Update(tc, oOrganogram);
OrganogramDA.DeleteOrganAuthority(tc, oOrganogram.ID);
OrganogramDA.DeleteOrganDelegation(tc, oOrganogram.ID);
OrganogramDA.DeleteOranJobDesc(tc, oOrganogram.ID);
OrganogramDA.DeleteOrganResponsibility(tc, oOrganogram.ID);
OrganogramDA.DeleteOrganSkilLevel(tc, oOrganogram.ID);
OrganogramDA.DeleteOrganPosition(tc, oOrganogram.ID);
}
//tableName = "OrganAuthority";
foreach (OrganogramAuthority organAuthor in oOrganogram.OrganAuthority)
{
id = tc.GenerateID("OrganAuthority", "OrganAuthorityID");
organAuthor.NodeID = oOrganogram.ID;
base.SetObjectID(organAuthor, (id));
OrganogramDA.Insert(tc, organAuthor);
}
//tableName = "OrganDelegation";
foreach (OrganogramDelegation organDele in oOrganogram.OrganDelegation)
{
id = tc.GenerateID("OrganDelegation", "OrganDelegationID");
organDele.NodeID = oOrganogram.ID;
base.SetObjectID(organDele, (id));
OrganogramDA.Insert(tc, organDele);
}
//tableName = "OrganJobDescription";
foreach (OrganogramJobDesc organJob in oOrganogram.OrganJobDesc)
{
id = tc.GenerateID("OrganJobDescription", "OrganJobDescID");
organJob.NodeID = oOrganogram.ID;
organJob.CreatedBy = oOrganogram.CreatedBy;
organJob.CreatedDate = oOrganogram.CreatedDate;
base.SetObjectID(organJob, (id));
OrganogramDA.Insert(tc, organJob);
}
//tableName = "OrganResponsibility";
foreach (OrganogramResponsibility organRes in oOrganogram.OrganResponsibility)
{
id = tc.GenerateID("OrganResponsibility", "OrganResponsibilityID");
organRes.NodeID = oOrganogram.ID;
base.SetObjectID(organRes, (id));
OrganogramDA.Insert(tc, organRes);
}
//tableName = "OrganSkillLevel";
foreach (OrganogramSkillLevel organSkillLvl in oOrganogram.OrganSkillLevel)
{
id = tc.GenerateID("OrganSkillLevel", "OrganSkillLevelID");
organSkillLvl.NodeID = oOrganogram.ID;
base.SetObjectID(organSkillLvl, (id));
OrganogramDA.Insert(tc, organSkillLvl);
}
//tableName = "OrganPosition";
if (oOrganogram.OrganPositions != null)
{
foreach (OrganogramPosition organPosn in oOrganogram.OrganPositions)
{
id = tc.GenerateID("OrganPosition", "OrganPositionID");
organPosn.NodeID = oOrganogram.ID;
base.SetObjectID(organPosn, (id));
OrganogramDA.Insert(tc, organPosn);
}
}
return oOrganogram.ID;
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
//string smessage = "Faliled to save Organogram (table:" + tableName + ") for the Position:("
// + oOrganogram.PositionNo + ") " + oOrganogram.PositionName + ". Error :";
throw new ServiceException(e.Message, e);
#endregion
}
}
#endregion
#region Delete
public void Delete(int id)
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
OrganogramDA.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
}
}
public void DeleteAll()
{
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin(true);
OrganogramDA.DeleteAll(tc);
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
public List<OrganogramAuthority> GetAllOrganAuthority()
{
List<OrganogramAuthority> Organograms = new List<OrganogramAuthority>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.GetAllOrganAuthority(tc));
Organograms = this.CreateOrganAuthorityObject(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 Organograms;
}
public OrganogramBasic GetbyEmployeeid(int employeeid)
{
List<OrganogramBasic> Organograms = new List<OrganogramBasic>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.GetbyEmployeeID(tc, employeeid));
Organograms = this.CreateObjects<OrganogramBasic>(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
}
if (Organograms != null && Organograms.Count > 0)
return Organograms[0];
else return null;
}
public int GetMaxTier(TransactionContext tc)
{
int maxLevel = 0;
try
{
#region Retrieving data
maxLevel = OrganogramDA.GetMaxTier(tc);
#endregion
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
throw new ServiceException(e.Message, e);
#endregion
}
return maxLevel;
}
public OrganogramBasic Get(int id)
{
OrganogramBasic oOrganogram = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader oreader = new DataReader(OrganogramDA.Get(tc, id));
if (oreader.Read())
{
oOrganogram = this.CreateObject<OrganogramBasic>(oreader);
}
oreader.Close();
if (oOrganogram != null)
{
OrganogramEmployeeService ore = new OrganogramEmployeeService();
oOrganogram.OrganEmployees = ore.Get(tc, oOrganogram.ID);
DataReader dr = new DataReader(OrganogramDA.Get4OrganPosition(tc, oOrganogram.ID));
oOrganogram.OrganPositions = this.CreateOrganPositionObject(dr);
dr.Close();
//dr = new DataReader(OrganogramDA.Get4OrganAuthority(tc, oOrganogram.ID));
//oOrganogram.OrganAuthority = this.CreateOrganAuthorityObject(dr);
//dr.Close();
//dr = new DataReader(OrganogramDA.Get4OrganJobDesc(tc, oOrganogram.ID));
//oOrganogram.OrganJobDesc = this.CreateOrganJobDescObject(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 oOrganogram;
}
public List<OrganogramBasic> Get(EnumStatus status)
{
List<OrganogramBasic> Organograms = new List<OrganogramBasic>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.Get(tc, status));
Organograms = this.CreateObjects<OrganogramBasic>(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 Organograms;
}
public List<OrganogramBasic> GetbyTier(int fromTier, int toTier)
{
List<OrganogramBasic> Organograms = new List<OrganogramBasic>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.GetbyTier(tc, fromTier, toTier));
Organograms = this.CreateObjects<OrganogramBasic>(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 Organograms;
}
public List<OrganogramBasic> GetbyPositionTypeID(int postiontypeid)
{
List<OrganogramBasic> Organograms = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.GetbyPositionType(tc, postiontypeid));
Organograms = this.CreateObjects<OrganogramBasic>(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 Organograms;
}
public List<OrganogramBasic> GetTopParents(EnumStatus status)
{
List<OrganogramBasic> items = new List<OrganogramBasic>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.GetTopParents(tc, status));
items = this.CreateObjects<OrganogramBasic>(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 items;
}
public List<OrganogramBasic> GetByParentID(int parentID, EnumStatus status)
{
List<OrganogramBasic> items = new List<OrganogramBasic>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.GetByParentID(tc, parentID, status));
items = this.CreateObjects<OrganogramBasic>(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 items;
}
public List<OrganogramAuthority> Get4OrganAuthority(int nodeID)
{
List<OrganogramAuthority> Organograms = new List<OrganogramAuthority>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.Get4OrganAuthority(tc, nodeID));
Organograms = this.CreateOrganAuthorityObject(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 Organograms;
}
public List<OrganogramDelegation> Get4OrganDelegation(int nodeID)
{
List<OrganogramDelegation> Organograms = new List<OrganogramDelegation>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.Get4OrganDelegation(tc, nodeID));
Organograms = this.CreateOrganDelegationObject(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 Organograms;
}
public List<OrganogramJobDesc> Get4OrganJobDesc(int nodeID)
{
List<OrganogramJobDesc> Organograms = new List<OrganogramJobDesc>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.Get4OrganJobDesc(tc, nodeID));
Organograms = this.CreateOrganJobDescObject(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 Organograms;
}
public List<OrganogramResponsibility> Get4OrganResponsibility(int nodeId)
{
List<OrganogramResponsibility> Organograms = new List<OrganogramResponsibility>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.Get4OrganResponsibility(tc, nodeId));
Organograms = this.CreateOrganResponsibilityObject(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 Organograms;
}
public List<OrganogramSkillLevel> Get4OrganSkilLevel(int nodeID)
{
List<OrganogramSkillLevel> Organograms = new List<OrganogramSkillLevel>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.Get4OrganSkilLevel(tc, nodeID));
Organograms = this.CreateOrganSkilLevelObject(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 Organograms;
}
public List<OrganogramPosition> Get4OrganPosition(int nodeID)
{
List<OrganogramPosition> Organograms = new List<OrganogramPosition>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.Get4OrganPosition(tc, nodeID));
Organograms = this.CreateOrganPositionObject(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 Organograms;
}
public List<OrganogramPosition> GetAllOrganPosition()
{
List<OrganogramPosition> Organograms = new List<OrganogramPosition>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.GetAllOrganPosition(tc));
Organograms = this.CreateOrganPositionObject(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 Organograms;
}
public List<OrganogramAuthority> GetOrganAuthorityByEmp(int EmpID)
{
List<OrganogramAuthority> Organograms = new List<OrganogramAuthority>();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader dr = new DataReader(OrganogramDA.GetOrganAuthorityByEmp(tc, EmpID));
Organograms = this.CreateOrganAuthorityObject(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 Organograms;
}
public DataTable GetManagers(string sEmpIDs)
{
DataTable dataTableOfEmployee = new DataTable("Employee");
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataSet dataSet = OrganogramDA.GetManagers(tc, sEmpIDs);
dataTableOfEmployee = dataSet.Tables[0];
dataSet.Dispose();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return dataTableOfEmployee;
}
public void UpdateParentAndTier(List<OrganogramBasic> oNodes)
{
try
{
TransactionContext tc = null;
try
{
#region Update data
tc = TransactionContext.Begin(true);
foreach (OrganogramBasic oNode in oNodes)
{
OrganogramDA.UpdateParentAndTier(tc, oNode);
if(oNode.ParentID !=null)
HREmployeeDA.updateLineManagerOnlyByOrganogram(tc, oNode);
}
tc.End();
#endregion
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
throw new ServiceException(e.Message, e);
#endregion
}
}
catch (Exception e)
{
throw new ServiceException(e.Message, e);
}
}
public int GetMinNodeIdByDept(int deptID)
{
OrganogramBasic oOrganogram = null;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
DataReader oreader = new DataReader(OrganogramDA.GetMinNodeIdByDept(tc, deptID));
if (oreader.Read())
{
oOrganogram = this.CreateObject<OrganogramBasic>(oreader);
}
oreader.Close();
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
if (oOrganogram == null) return 0;
else return oOrganogram.ID;
}
public void CreateOrgFromEmployee(int userid)
{
List<Employee> emps = new EmployeeService().GetAllEmps();
List<Designation> desgs = new DesignationService().GetAll();
List<Employee> parents = emps.FindAll(x => x.LineManagerID == null);
this.DeleteAll();
if (parents!=null)
{
foreach(Employee emp in parents )
{
if (emp.Status == EnumEmployeeStatus.Live)
this.CreateOrgFromEmp(emps, userid, emp.ID, null,1, desgs);
}
}
}
public void CreateOrgFromEmp(List<Employee> emps,int userid, int empID, int? nodeid,int tier, List<Designation> designations )
{
OrganogramBasic obasic = new OrganogramBasic();
Employee oemp = emps.FirstOrDefault(x => x.ID == empID);
var deg = designations.FirstOrDefault(x => x.ID == oemp.DesignationID);
if (deg != null)
obasic.PositionName = deg.Name;
if(oemp.DesignationID!=null)
obasic.DesignationID =(int) oemp.DesignationID;
if (oemp.LocationID != null)
obasic.LocationID =(int) oemp.LocationID;
if (oemp.GradeID != null)
obasic.GradeID = oemp.GradeID;
if (oemp.DepartmentID != null)
obasic.DepartmentID =(int) oemp.DepartmentID;
if (nodeid != null)
obasic.ParentID =(int) nodeid;
OrganogramEmployee oge = new OrganogramEmployee();
oge.EmployeeID = empID;
oge.CreatedBy = userid;
oge.CreatedDate = DateTime.Today;
obasic.OrganEmployees = new List<OrganogramEmployee>();
obasic.OrganEmployees.Add(oge);
obasic.CreatedBy = userid;
obasic.CreatedDate = DateTime.Today;
obasic.Tier = tier;
this.Save(obasic);
oge.AssignDate = DateTime.Today;
oge.NodeID = obasic.ID;
new OrganogramEmployeeService().Save(oge);
List<Employee> childs = emps.FindAll(x => x.LineManagerID == empID);
if(childs!= null)
{
foreach(Employee item in childs)
{
if(item.Status == EnumEmployeeStatus.Live)
CreateOrgFromEmp(emps, userid, item.ID, obasic.ID, tier +1, designations);
}
}
}
public DataSet GetOrganogramNodes(int nNodeID)
{
DataSet ds = new DataSet();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
ds = OrganogramDA.GetOrganogramNodes(tc, nNodeID);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return ds;
}
public DataSet GetLMOrganogramNodes(int nNodeID)
{
DataSet ds = new DataSet();
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
ds = OrganogramDA.GetLMOrganogramNodes(tc, nNodeID);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return ds;
}
public int MaxTier()
{
int tier = 0;
TransactionContext tc = null;
try
{
tc = TransactionContext.Begin();
tier = OrganogramDA.MaxTier(tc);
tc.End();
}
catch (Exception e)
{
#region Handle Exception
if (tc != null)
tc.HandleError();
ExceptionLog.Write(e);
throw new ServiceException(e.Message, e);
#endregion
}
return tier;
}
#endregion
#endregion
}
#endregion
}