1877 lines
68 KiB
C#
1877 lines
68 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 System.IO;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
|
|
namespace HRM.DA
|
|
{
|
|
public class ErCVService : ServiceTemplate, IErCVService
|
|
{
|
|
#region CV Object Mapping
|
|
|
|
private void MapCVObject(ErCV obCv, DataReader oReader)
|
|
{
|
|
this.SetObjectID(obCv, oReader.GetInt32("CVID").Value);
|
|
obCv.Name = oReader.GetString("Name") != null ? oReader.GetString("Name") : string.Empty;
|
|
obCv.FirstName = oReader.GetString("FirstName") != null ? oReader.GetString("FirstName") : string.Empty;
|
|
obCv.LastName = oReader.GetString("LastName") != null ? oReader.GetString("LastName") : string.Empty;
|
|
obCv.Email = oReader.GetString("Email") != null ? oReader.GetString("Email") : string.Empty;
|
|
obCv.Mobile = oReader.GetString("Mobile") != null ? oReader.GetString("Mobile") : string.Empty;
|
|
obCv.Designation = oReader.GetString("Designation", true, null);
|
|
obCv.PresentAddress = oReader.GetString("PresentAddress", true, null);
|
|
obCv.PermanentAddress = oReader.GetString("PermanentAddress", true, null);
|
|
obCv.Gender = oReader.GetString("Gender") != null ? (EnumGender)oReader.GetInt32("Gender").Value : EnumGender.None;
|
|
obCv.MaritalStatus = oReader.GetString("MaritalStatus") != null ? (EnumMaritalStatus)oReader.GetInt32("MaritalStatus").Value : EnumMaritalStatus.None;
|
|
obCv.ReligionID = oReader.GetInt32("ReligionID", true, 0);
|
|
obCv.PositionID = oReader.GetInt32("PositionID", true, 0);
|
|
obCv.CandidateID = oReader.GetInt32("CandidateID", true, 0);
|
|
obCv.SortStatus = oReader.GetString("SortStatus", true, null);
|
|
obCv.UserID = oReader.GetInt32("UserID", true, 0);
|
|
obCv.PresentAddress = oReader.GetString("PresentAddress", true, null);
|
|
obCv.PermanentAddress = oReader.GetString("PermanentAddress", true, null);
|
|
// obCv.PositionStatus = (EnumOnBoradStatus)oReader.GetInt32("ONBOARDSTATUS", true, 1);
|
|
|
|
if (oReader.GetDateTime("CreationDate") == null)
|
|
{
|
|
obCv.CreatedDate = DateTime.MinValue;
|
|
}
|
|
else
|
|
{
|
|
obCv.CreatedDate = oReader.GetDateTime("CreationDate").Value;
|
|
}
|
|
|
|
if (oReader.GetDateTime("ModificationDate") == null)
|
|
{
|
|
obCv.ModifiedDate = DateTime.MinValue;
|
|
}
|
|
else
|
|
{
|
|
obCv.ModifiedDate = oReader.GetDateTime("ModificationDate").Value;
|
|
}
|
|
|
|
|
|
this.SetObjectState(obCv, ObjectState.Saved);
|
|
}
|
|
|
|
protected override T CreateObject<T>(DataReader oReader)
|
|
{
|
|
ErCV obCv = new ErCV();
|
|
MapCVObject(obCv, oReader);
|
|
return obCv as T;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Experience Object Mapping
|
|
|
|
private void MapExperience(ErCVExperience obExperience, DataReader oReader)
|
|
{
|
|
SetObjectID(obExperience, (oReader.GetInt32("CVExperienceID").Value));
|
|
obExperience.Employeer = oReader.GetString("Employeer") != null ? oReader.GetString("Employeer") : string.Empty;
|
|
obExperience.ContactPerson = oReader.GetString("ContactPerson") != null ? oReader.GetString("ContactPerson") : string.Empty;
|
|
obExperience.Address = oReader.GetString("Address") != null ? oReader.GetString("Address") : string.Empty;
|
|
obExperience.Industry = oReader.GetString("Industry") != null ? oReader.GetString("Industry") : string.Empty;
|
|
obExperience.Designation = oReader.GetString("Designation") != null ? oReader.GetString("Designation") : string.Empty;
|
|
obExperience.FromDate = oReader.GetString("FromDate") != null ? oReader.GetDateTime("FromDate").Value : DateTime.MinValue;
|
|
obExperience.ToDate = oReader.GetString("ToDate") != null ? oReader.GetDateTime("ToDate").Value : DateTime.MinValue;
|
|
obExperience.Telephone = oReader.GetString("Telephone") != null ? oReader.GetString("Telephone") : string.Empty;
|
|
obExperience.RoleDefination = oReader.GetString("RoleDefination") != null ? oReader.GetString("RoleDefination") : string.Empty;
|
|
obExperience.Mobile = oReader.GetString("Mobile") != null ? oReader.GetString("Mobile") : string.Empty;
|
|
obExperience.CVID = oReader.GetString("CVID") != null ? oReader.GetInt32("CVID").Value : 0;
|
|
this.SetObjectState(obExperience, ObjectState.Saved);
|
|
}
|
|
|
|
private List<ErCVExperience> CreateExperienceObjects(DataReader oReader)
|
|
{
|
|
List<ErCVExperience> allExperiences = new List<ErCVExperience>();
|
|
while (oReader.Read())
|
|
{
|
|
ErCVExperience obExp = new ErCVExperience();
|
|
MapExperience(obExp, oReader);
|
|
allExperiences.Add(obExp);
|
|
}
|
|
|
|
return allExperiences;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region CVReference Object Mapping
|
|
|
|
private void MapReference(ErCVReference obExperience, DataReader oReader)
|
|
{
|
|
SetObjectID(obExperience, (oReader.GetInt32("CVReferenceID").Value));
|
|
obExperience.Name = oReader.GetString("Name") != null ? oReader.GetString("Name") : string.Empty;
|
|
obExperience.Occupation = oReader.GetString("Occupation") != null ? oReader.GetString("Occupation") : string.Empty;
|
|
obExperience.Relation = oReader.GetString("Relation") != null ? oReader.GetString("Relation") : string.Empty;
|
|
obExperience.Address = oReader.GetString("Address") != null ? oReader.GetString("Address") : string.Empty;
|
|
obExperience.Email = oReader.GetString("Email") != null ? oReader.GetString("Email") : string.Empty;
|
|
obExperience.Telephone = oReader.GetString("Telephone") != null ? oReader.GetString("Telephone") : string.Empty;
|
|
obExperience.Mobile = oReader.GetString("Mobile") != null ? oReader.GetString("Mobile") : string.Empty;
|
|
obExperience.CVID = oReader.GetString("CVID") != null ? oReader.GetInt32("CVID").Value : 0;
|
|
this.SetObjectState(obExperience, ObjectState.Saved);
|
|
}
|
|
|
|
private List<ErCVReference> CreateReferenceObjects(DataReader oReader)
|
|
{
|
|
List<ErCVReference> allExperiences = new List<ErCVReference>();
|
|
while (oReader.Read())
|
|
{
|
|
ErCVReference obExp = new ErCVReference();
|
|
MapReference(obExp, oReader);
|
|
allExperiences.Add(obExp);
|
|
}
|
|
|
|
return allExperiences;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Map ReferredBy Object
|
|
|
|
private void MapReferredBy(ReferredBy obReferredBy, DataReader oReader)
|
|
{
|
|
SetObjectID(obReferredBy, (oReader.GetInt32("ReferredByID").Value));
|
|
obReferredBy.CvId = (oReader.GetInt32("CvId").Value);
|
|
obReferredBy.Name = oReader.GetString("Name");
|
|
obReferredBy.OtherDetail = oReader.GetString("OtherDetail");
|
|
obReferredBy.ReferredBY = (EnumReferredBy)oReader.GetInt32("ReferredBy");
|
|
this.SetObjectState(obReferredBy, ObjectState.Saved);
|
|
}
|
|
|
|
private List<ReferredBy> CreateReferredByObjects(DataReader oReader)
|
|
{
|
|
List<ReferredBy> allobRefs = new List<ReferredBy>();
|
|
while (oReader.Read())
|
|
{
|
|
ReferredBy obRef = new ReferredBy();
|
|
MapReferredBy(obRef, oReader);
|
|
allobRefs.Add(obRef);
|
|
}
|
|
|
|
return allobRefs;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Map CVOrg Object
|
|
|
|
private void MapCVOrg(CVOrg obCVOrg, DataReader oReader)
|
|
{
|
|
SetObjectID(obCVOrg, (oReader.GetInt32("CVOrgID").Value));
|
|
obCVOrg.CvID = oReader.GetInt32("CVID", 0);
|
|
obCVOrg.DesignationID = oReader.GetInt32("DesignationID", 0);
|
|
obCVOrg.OrganizationId = oReader.GetInt32("OrganizationID", 0);
|
|
obCVOrg.CVOrgType = (EnumCVOrgType)oReader.GetInt32("CVOrgType");
|
|
this.SetObjectState(obCVOrg, ObjectState.Saved);
|
|
}
|
|
|
|
private List<CVOrg> CreateCVOrgObjects(DataReader oReader)
|
|
{
|
|
List<CVOrg> allobCVOrgs = new List<CVOrg>();
|
|
while (oReader.Read())
|
|
{
|
|
CVOrg obCVOrg = new CVOrg();
|
|
MapCVOrg(obCVOrg, oReader);
|
|
allobCVOrgs.Add(obCVOrg);
|
|
}
|
|
|
|
return allobCVOrgs;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Map EductionalQualification
|
|
|
|
private void MapEductionalQualification(ErCVEducation obEductionalQualification, DataReader oReader)
|
|
{
|
|
SetObjectID(obEductionalQualification, (oReader.GetInt32("CVEducationID").Value));
|
|
obEductionalQualification.DegreeTitleID = oReader.GetInt32("DegreeTitleID", 0);
|
|
obEductionalQualification.DisciplineID = oReader.GetInt32("DisciplineIID", 0);
|
|
obEductionalQualification.BoardID = oReader.GetInt32("BoardID", 0);
|
|
obEductionalQualification.PassingYear = oReader.GetString("PassingYear") != null ? oReader.GetString("PassingYear") : string.Empty;
|
|
obEductionalQualification.ResultID = oReader.GetInt32("ResultID", 0);
|
|
obEductionalQualification.CGPA = oReader.GetString("CGPA") != null ? oReader.GetString("CGPA") : string.Empty;
|
|
obEductionalQualification.OutOF = oReader.GetString("OutOF") != null ? oReader.GetString("OutOF") : string.Empty;
|
|
obEductionalQualification.IsHighest = oReader.GetBoolean("IsHighest").Value;
|
|
obEductionalQualification.InstituteName = oReader.GetString("InstituteName") != null ? oReader.GetString("InstituteName") : string.Empty;
|
|
obEductionalQualification.CVID = oReader.GetInt32("CVID", 0);
|
|
obEductionalQualification.DegreeTitle = oReader.GetString("ExamTitle") != null ? oReader.GetString("ExamTitle") : string.Empty;
|
|
obEductionalQualification.Concentration = oReader.GetString("Concentration") != null ? oReader.GetString("Concentration") : string.Empty;
|
|
obEductionalQualification.Duration = oReader.GetString("Duration") != null ? oReader.GetString("Duration") : string.Empty;
|
|
obEductionalQualification.Achievement = oReader.GetString("Achievement") != null ? oReader.GetString("Achievement") : string.Empty;
|
|
|
|
this.SetObjectState(obEductionalQualification, ObjectState.Saved);
|
|
}
|
|
|
|
private List<ErCVEducation> CreateEductionalQualificationObjects(DataReader oReader)
|
|
{
|
|
List<ErCVEducation> allQualfs = new List<ErCVEducation>();
|
|
while (oReader.Read())
|
|
{
|
|
ErCVEducation obQuef = new ErCVEducation();
|
|
MapEductionalQualification(obQuef, oReader);
|
|
allQualfs.Add(obQuef);
|
|
}
|
|
|
|
return allQualfs;
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
#region Map Training
|
|
|
|
private void MapErCVTraining(ErCVTraining obErCVTraining, DataReader oReader)
|
|
{
|
|
SetObjectID(obErCVTraining, (oReader.GetInt32("ERCVTRAININGID").Value));
|
|
obErCVTraining.Name = oReader.GetString("Name", null);
|
|
obErCVTraining.Description = oReader.GetString("Description", null);
|
|
obErCVTraining.Country = oReader.GetString("Country", null);
|
|
obErCVTraining.TrainingTypeID = oReader.GetInt32("TrainingTypeID", 0);
|
|
obErCVTraining.NatureOfTrainingID = oReader.GetInt32("NatureOfTrainingID", 0);
|
|
obErCVTraining.InstitutionID = oReader.GetString("INSTITUTIONID") != null ? oReader.GetInt32("INSTITUTIONID").Value :0;
|
|
obErCVTraining.Achievement = oReader.GetString("Achievement",true, null);
|
|
obErCVTraining.Place = oReader.GetString("TRAININGPLACE", true, null);
|
|
obErCVTraining.FromDate = oReader.GetString("FromDate") != null ? oReader.GetDateTime("FromDate").Value : DateTime.MinValue;
|
|
obErCVTraining.ToDate = oReader.GetString("ToDate") != null ? oReader.GetDateTime("ToDate").Value : DateTime.MinValue;
|
|
obErCVTraining.CVID = oReader.GetInt32("CVID", 0);
|
|
obErCVTraining.Days = oReader.GetString("Days",true, null);
|
|
obErCVTraining.Hours = oReader.GetString("Hours", true, null);
|
|
obErCVTraining.CountryID = oReader.GetString("Country") != null ? oReader.GetInt32("Country").Value : 0;
|
|
obErCVTraining.InstituteName = oReader.GetString("InstituteName") != null ? oReader.GetString("InstituteName") : string.Empty;
|
|
this.SetObjectState(obErCVTraining, ObjectState.Saved);
|
|
}
|
|
|
|
private List<ErCVTraining> CreateErCVTrainingObjects(DataReader oReader)
|
|
{
|
|
List<ErCVTraining> allTraining = new List<ErCVTraining>();
|
|
while (oReader.Read())
|
|
{
|
|
ErCVTraining obQuef = new ErCVTraining();
|
|
MapErCVTraining(obQuef, oReader);
|
|
allTraining.Add(obQuef);
|
|
}
|
|
|
|
return allTraining;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region CVAttachment
|
|
protected List<FileAttachment> CreateirFileAttachmentObjects(DataReader oReader)
|
|
{
|
|
List<FileAttachment> oIRFileAttachments = new List<FileAttachment>();
|
|
while (oReader.Read())
|
|
{
|
|
FileAttachment oIRFileAtachment = new FileAttachment();
|
|
MapIRFileAttachmentObject(oIRFileAtachment, oReader);
|
|
oIRFileAttachments.Add(oIRFileAtachment);
|
|
}
|
|
|
|
return oIRFileAttachments;
|
|
}
|
|
private void MapIRFileAttachmentObject(FileAttachment oIRFileAttachment, DataReader oReader)
|
|
{
|
|
base.SetObjectID(oIRFileAttachment, (oReader.GetInt32("FILEATTACHMENTID").Value));
|
|
oIRFileAttachment.ReferenceID = oReader.GetInt32("ReferenceID", 0);
|
|
oIRFileAttachment.FileAsByteArray = oReader.GetLob("FileData");
|
|
oIRFileAttachment.OriginalFileName = oReader.GetString("OriginalFileName");
|
|
oIRFileAttachment.FileType = (EnumFileType)oReader.GetInt32("FileType").GetValueOrDefault();
|
|
|
|
this.SetObjectState(oIRFileAttachment, Ease.Core.ObjectState.Saved);
|
|
}
|
|
|
|
//private List<FileAttachment> MapIRFileAttachmentObjects(DataReader oReader)
|
|
//{
|
|
// List<FileAttachment> FileAttachment = new List<FileAttachment>();
|
|
// base.SetObjectID(oIRFileAttachment, (oReader.GetInt32("FILEATTACHMENTID").Value));
|
|
// oIRFileAttachment.ReferenceID = oReader.GetInt32("ReferenceID", 0);
|
|
// oIRFileAttachment.FileAsByteArray = oReader.GetLob("FileData");
|
|
// oIRFileAttachment.OriginalFileName = oReader.GetString("OriginalFileName");
|
|
// oIRFileAttachment.FileType = (EnumFileType)oReader.GetInt32("FileType").GetValueOrDefault();
|
|
|
|
// this.SetObjectState(oIRFileAttachment, Ease.Core.ObjectState.Saved);
|
|
//}
|
|
#endregion
|
|
|
|
#region Service Implementation
|
|
|
|
#region GenerateTrackNo()
|
|
|
|
public int GenerateTrackNo()
|
|
{
|
|
TransactionContext tc = null;
|
|
int id;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
//id = tc.GenerateID("CVMain", "TrackNo");
|
|
id = tc.GenerateID("CVMain", "CvID");
|
|
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return id;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Delete(CV obCv)
|
|
|
|
public void Delete(ErCV obCv)
|
|
{
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
#region Delete Experience
|
|
ExperienceDA.Delete(obCv.ID, tc);
|
|
#endregion
|
|
#region Delete Reference
|
|
CVReferenceDA.Delete(obCv.ID, tc);
|
|
#endregion
|
|
#region Delete Education
|
|
CVEducationDA.Delete(obCv.ID, tc);
|
|
#endregion
|
|
#region Delete Attachment
|
|
FileAttachmentDA.Delete(tc, obCv.ID, EnumFileType.ErCV);
|
|
#endregion
|
|
#region Delete CV
|
|
CVDA.Delete(obCv.ID, tc);
|
|
#endregion
|
|
tc.End();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
public void DeleteCVRecuirtmemt(ErCV obCv)
|
|
{
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
#region Delete Experience
|
|
ExperienceDA.Delete(obCv.ID, tc);
|
|
#endregion
|
|
#region Delete Reference
|
|
CVReferenceDA.Delete(obCv.ID, tc);
|
|
#endregion
|
|
#region Delete Education
|
|
CVEducationDA.Delete(obCv.ID, tc);
|
|
#endregion
|
|
#region Delete Attachment
|
|
FileAttachmentDA.Delete(tc, obCv.ID, EnumFileType.ErCV);
|
|
#endregion
|
|
#region Delete CV
|
|
CVDA.Delete(obCv.ID, tc);
|
|
#endregion
|
|
//#region Delete Candidate
|
|
//CandidateDA.DeleteCVCandidate(tc, obCv.ID);
|
|
//#endregion
|
|
tc.End();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
public List<ErCV> SaveCVs(List<ErCV> cvs, string connectionString)
|
|
{
|
|
List<ErCV> newItemList = new List<ErCV>();
|
|
List<Candidate> candidates = new List<Candidate>();
|
|
List<int> idList = new List<int>();
|
|
TransactionContext tc = null;
|
|
int positionID = 0;
|
|
try
|
|
{
|
|
|
|
tc = TransactionContext.Begin(true);
|
|
foreach (var obCv in cvs)
|
|
{
|
|
positionID = obCv.PositionID;
|
|
int oID = 0;
|
|
if (obCv.IsNew)
|
|
{
|
|
int id = tc.GenerateID("CV", "CvID");
|
|
oID = (id);
|
|
base.SetObjectID(obCv, (id));
|
|
//CVDA.InsertCVBase(obCv, tc);
|
|
}
|
|
else
|
|
{
|
|
oID = obCv.ID;
|
|
//CVDA.UpdateCVBase(obCv, tc);
|
|
}
|
|
|
|
if (obCv.AllExperiences != null && obCv.AllExperiences.Count > 0)
|
|
{
|
|
ExperienceDA.DeleteByCvId(oID, tc);
|
|
foreach (ErCVExperience exprItem in obCv.AllExperiences)
|
|
{
|
|
int id = tc.GenerateID("CVExperience", "CVExperienceID");
|
|
exprItem.CVID = oID;
|
|
base.SetObjectID(exprItem, (id));
|
|
//ExperienceDA.InsertExperience(exprItem, tc);
|
|
}
|
|
}
|
|
|
|
if (obCv.AllEduQualifications != null && obCv.AllEduQualifications.Count > 0)
|
|
{
|
|
CVEducationDA.DeleteByCvId(oID, tc);
|
|
foreach (ErCVEducation eduItem in obCv.AllEduQualifications)
|
|
{
|
|
int id = tc.GenerateID("CVEducation", "CVEducationID");
|
|
eduItem.CVID = oID;
|
|
base.SetObjectID(eduItem, (id));
|
|
//CVEducationDA.InsertEductionalQualification(eduItem, tc);
|
|
}
|
|
}
|
|
|
|
if (obCv.CVReferences != null && obCv.CVReferences.Count > 0)
|
|
{
|
|
CVReferenceDA.DeleteByCvId(oID, tc);
|
|
foreach (ErCVReference oItem in obCv.CVReferences)
|
|
{
|
|
int id = tc.GenerateID("CVReference", "CVReferenceID");
|
|
oItem.CVID = oID;
|
|
base.SetObjectID(oItem, (id));
|
|
//CVReferenceDA.Insert(oItem, tc);
|
|
}
|
|
}
|
|
CVDA.DeleteAttachment(tc, obCv.ID, EnumFileType.ErCV);
|
|
|
|
var candidate = new Candidate();
|
|
candidate.CvID = oID;
|
|
candidate.ProcessId = obCv.PositionID;
|
|
candidate.IsSelected = false;
|
|
candidate.IsEmployee = false;
|
|
candidate.StartDate = new DateTime();
|
|
candidates.Add(candidate);
|
|
idList.Add(obCv.ID);
|
|
}
|
|
if (candidates != null && candidates.Count > 0)
|
|
{
|
|
new CandidateService().SaveMultipleCandidates(tc, candidates);
|
|
}
|
|
tc.End();
|
|
|
|
foreach (var item in cvs)
|
|
{
|
|
if (item.IRFileAttacments != null && item.IRFileAttacments.Count > 0)
|
|
{
|
|
foreach (var uploadfile in item.IRFileAttacments)
|
|
{
|
|
if (uploadfile.ID > 0 && uploadfile.FileTobase64 != null)
|
|
{
|
|
byte[] newBytes = Convert.FromBase64String(uploadfile.FileTobase64);
|
|
uploadfile.FileAsByteArray = newBytes;
|
|
uploadfile.ReferenceID = item.ID;
|
|
uploadfile.FileType = EnumFileType.ErCV;
|
|
FileAttachmentDA.Insert(uploadfile, connectionString);
|
|
}
|
|
else
|
|
{
|
|
FileStream stream = new FileStream(uploadfile.FilePath, FileMode.Open, FileAccess.Read);
|
|
BinaryReader reader = new BinaryReader(stream);
|
|
byte[] buff = reader.ReadBytes((int)stream.Length);
|
|
reader.Close();
|
|
stream.Close();
|
|
uploadfile.FileAsByteArray = buff;
|
|
uploadfile.ReferenceID = item.ID;
|
|
uploadfile.FileType = EnumFileType.ErCV;
|
|
FileAttachmentDA.Insert(uploadfile, connectionString);
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
//if (positionID > 0)
|
|
//{
|
|
// CVDA.UpdateRequisitionStatus(positionID, EnumOnBoradStatus.CVCollection, tc);
|
|
//}
|
|
|
|
// newItemList = GetCVByIDs(String.Join(",", idList));
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
}
|
|
|
|
return newItemList;
|
|
}
|
|
|
|
|
|
#region Insert(CV obCv)
|
|
|
|
public void Save(ErCV obCv, string connectionString)
|
|
{
|
|
TransactionContext tc = null;
|
|
int oID = 0;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
if (obCv.IsNew)
|
|
{
|
|
int id = tc.GenerateID("ERCV", "CvID");
|
|
oID = (id);
|
|
base.SetObjectID(obCv, (id));
|
|
ErCVDA.InsertErCVBase(obCv, tc);
|
|
|
|
}
|
|
else
|
|
{
|
|
oID = obCv.ID;
|
|
ErCVDA.UpdateCVBase(obCv, tc);
|
|
}
|
|
|
|
if (obCv.AllExperiences != null && obCv.AllExperiences.Count > 0)
|
|
{
|
|
ErCVExperienceDA.DeleteByCvId(oID, tc);
|
|
foreach (ErCVExperience exprItem in obCv.AllExperiences)
|
|
{
|
|
int id = tc.GenerateID("ERCVExperience", "CVExperienceID");
|
|
exprItem.CVID = oID;
|
|
base.SetObjectID(exprItem, (id));
|
|
ErCVExperienceDA.InsertErcvExperience(exprItem, tc);
|
|
}
|
|
}
|
|
|
|
if (obCv.AllEduQualifications != null && obCv.AllEduQualifications.Count > 0)
|
|
{
|
|
ErCvEducationDA.DeleteByCvId(oID, tc);
|
|
foreach (ErCVEducation eduItem in obCv.AllEduQualifications)
|
|
{
|
|
int id = tc.GenerateID("ERCVEducation", "CVEducationID");
|
|
eduItem.CVID = oID;
|
|
base.SetObjectID(eduItem, (id));
|
|
ErCvEducationDA.InsertErCVEducation(eduItem, tc);
|
|
}
|
|
}
|
|
|
|
if (obCv.CVReferences != null && obCv.CVReferences.Count > 0)
|
|
{
|
|
ErCVReferenceDA.DeleteByCvId(oID, tc);
|
|
foreach (ErCVReference oItem in obCv.CVReferences)
|
|
{
|
|
int id = tc.GenerateID("ERCVREFERENCE", "CVReferenceID");
|
|
oItem.CVID = oID;
|
|
base.SetObjectID(oItem, (id));
|
|
ErCVReferenceDA.Insert(oItem, tc);
|
|
}
|
|
}
|
|
|
|
if (obCv.CVTrainings != null && obCv.CVTrainings.Count > 0)
|
|
{
|
|
ErCVTrainingDA.DeleteByCvId(oID, tc);
|
|
foreach (ErCVTraining oItem in obCv.CVTrainings)
|
|
{
|
|
int id = tc.GenerateID("ERCVTRAINING", "ERCVTRAININGID");
|
|
oItem.CVID = oID;
|
|
base.SetObjectID(oItem, (id));
|
|
ErCVTrainingDA.Insert(oItem, tc);
|
|
}
|
|
}
|
|
ErJobUserDA.UpdateIsCvCompleted(tc, obCv.UserID);
|
|
ErCVDA.DeleteAttachment(tc, obCv.ID, EnumFileType.ErCVProfilePhoto);
|
|
if(obCv.IRFileAttacments != null && obCv.IRFileAttacments.Count > 0)
|
|
{
|
|
foreach (FileAttachment item in obCv.IRFileAttacments)
|
|
{
|
|
if(item.FileType == EnumFileType.ErCV)
|
|
{
|
|
ErCVDA.DeleteAttachment(tc, obCv.ID, EnumFileType.ErCV);
|
|
}
|
|
}
|
|
}
|
|
|
|
// CVDA.UpdateCVFromErecruitmentPortal(obCv.PositionID, obCv.ID, tc);
|
|
tc.End();
|
|
|
|
if (obCv.ErCVProfilePhoto != null)
|
|
{
|
|
if(obCv.ErCVProfilePhoto.FileAsByteArray != null)
|
|
{
|
|
obCv.ErCVProfilePhoto.ReferenceID = oID;
|
|
obCv.ErCVProfilePhoto.FileType = EnumFileType.ErCVProfilePhoto;
|
|
obCv.ErCVProfilePhoto.RefchildID = null;
|
|
FileAttachmentDA.Insert(obCv.ErCVProfilePhoto, connectionString);
|
|
}
|
|
}
|
|
|
|
if (obCv.IRFileAttacments != null && obCv.IRFileAttacments.Count > 0)
|
|
{
|
|
foreach (FileAttachment item in obCv.IRFileAttacments)
|
|
{
|
|
if (item != null)
|
|
{
|
|
if (item.ID > 0 && item.PreviousFileTobase64 != null)
|
|
{
|
|
byte[] newBytes = Convert.FromBase64String(item.PreviousFileTobase64);
|
|
item.FileAsByteArray = newBytes;
|
|
item.ReferenceID = oID;
|
|
item.RefchildID = null;
|
|
item.FileType = EnumFileType.ErCV;
|
|
FileAttachmentDA.Insert(item, connectionString);
|
|
}
|
|
else
|
|
{
|
|
|
|
item.ReferenceID = oID;
|
|
item.FileType = EnumFileType.ErCV;
|
|
item.RefchildID = null;
|
|
FileAttachmentDA.Insert(item, connectionString);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//List<CV> allCVs = null;
|
|
//allCVs = GetByCvSearch(null, obCv.Email, null);
|
|
//if(allCVs != null && allCVs.Count > 0)
|
|
//{
|
|
// tc = TransactionContext.Begin(true);
|
|
// CVDA.UpdateCVFromErecruitmentPortal(allCVs[0].ID, obCv.ID, tc);
|
|
// tc.End();
|
|
//}
|
|
//else
|
|
//{
|
|
// CV cv = new CV();
|
|
// cv.Name= obCv.Name;
|
|
// cv.FirstName = obCv.FirstName;
|
|
// cv.LastName = obCv.LastName;
|
|
// cv.Mobile = obCv.Mobile;
|
|
// cv.Email = obCv.Email;
|
|
// cv.PositionID = obCv.PositionID;
|
|
// cv.ErCvID = obCv.ID;
|
|
|
|
// tc = TransactionContext.Begin(true);
|
|
// CVDA.InsertCVBase(cv,tc);
|
|
// tc.End();
|
|
//}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
/// <summary>
|
|
/// //For cv collection module
|
|
/// </summary>
|
|
/// <param name="Items"></param>
|
|
public void SaveCVSort(List<ErCVSort> Items)
|
|
{
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
int RequisitionID = 0;
|
|
tc = TransactionContext.Begin(true);
|
|
foreach (var obCvSort in Items)
|
|
{
|
|
RequisitionID = obCvSort.RequisitionID;
|
|
int oID = 0;
|
|
if (obCvSort.IsNew)
|
|
{
|
|
int id = tc.GenerateID("CVSort", "CVSORTID");
|
|
oID = (id);
|
|
base.SetObjectID(obCvSort, (id));
|
|
//CVDA.InsertCVSort(obCvSort, tc);
|
|
}
|
|
else
|
|
{
|
|
oID = obCvSort.ID;
|
|
//CVDA.UpdateCVSort(obCvSort, tc);
|
|
}
|
|
}
|
|
if (RequisitionID > 0)
|
|
{
|
|
CVDA.UpdateRequisitionStatus(RequisitionID, EnumOnBoradStatus.CVCollection, tc);
|
|
}
|
|
|
|
tc.End();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
#region Insert(CV obCv)
|
|
|
|
public void SaveUserCVSort(ErUserCvSort obCv)
|
|
{
|
|
TransactionContext tc = null;
|
|
int oID = 0;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
if (obCv.IsNew)
|
|
{
|
|
int id = tc.GenerateID("UserCvSort", "USERCVSORTID");
|
|
oID = (id);
|
|
base.SetObjectID(obCv, (id));
|
|
// CVDA.InsertUserCvSort(obCv, tc);
|
|
}
|
|
//CVDA.UpdateCVCandidate(obCv, tc);
|
|
//CVDA.UpdateCandidate(obCv, tc);
|
|
tc.End();
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
#region GetReferredBy(int cVID)
|
|
|
|
public List<ReferredBy> GetReferredBy(int cVID)
|
|
{
|
|
List<ReferredBy> allRefs = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(CVDA.GetReferredBy(cVID, tc));
|
|
allRefs = this.CreateReferredByObjects(oreader);
|
|
oreader.Close();
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allRefs;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region GetCVOrgByID(int cVID)
|
|
|
|
public List<CVOrg> GetCVOrgByID(int cVID)
|
|
{
|
|
List<CVOrg> allCVOrgs = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(CVDA.GetCVOrgByID(cVID, tc));
|
|
allCVOrgs = this.CreateCVOrgObjects(oreader);
|
|
oreader.Close();
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allCVOrgs;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region GetEducationQualifications(int cVID)
|
|
|
|
public List<ErCVEducation> GetEducationQualifications(int cVID)
|
|
{
|
|
List<ErCVEducation> allEduQuals = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(CVDA.GetEducationQualifications(cVID, tc));
|
|
allEduQuals = this.CreateEductionalQualificationObjects(oreader);
|
|
oreader.Close();
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allEduQuals;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region GetExperiences(int cVID)
|
|
|
|
public List<ErCVExperience> GetExperiences(int cVID)
|
|
{
|
|
List<ErCVExperience> allExps = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(CVDA.GetExperiences(cVID, tc));
|
|
allExps = this.CreateExperienceObjects(oreader);
|
|
oreader.Close();
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allExps;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Get()
|
|
|
|
public List<ErCV> Get()
|
|
{
|
|
List<ErCV> allCVs = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(CVDA.Get(tc));
|
|
allCVs = this.CreateObjects<ErCV>(oreader);
|
|
oreader.Close();
|
|
foreach (ErCV cv in allCVs)
|
|
{
|
|
if (cv != null)
|
|
{
|
|
cv.AllExperiences = GetAllExp(tc, cv.ID);
|
|
cv.AllEduQualifications = GetAllEducations(tc, cv.ID);
|
|
if (cv.AllEduQualifications != null && cv.AllEduQualifications.Count > 0)
|
|
{
|
|
foreach (ErCVEducation item in cv.AllEduQualifications)
|
|
{
|
|
item.EducationLevels = new EducationLevelService().GetByID(tc, item.DegreeTitleID);
|
|
item.Disciplines = new DisciplineService().GetByID(tc, item.DisciplineID);
|
|
}
|
|
}
|
|
cv.CVReferences = GetAllReferences(tc, cv.ID);
|
|
cv.IRFileAttacments = GetAllAttachments(tc, cv.ID, EnumFileType.ErCV);
|
|
}
|
|
}
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allCVs;
|
|
}
|
|
|
|
public List<CV> getAllOnlyCV()
|
|
{
|
|
List<CV> allCVs = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(CVDA.Get(tc));
|
|
allCVs = this.CreateObjects<CV>(oreader);
|
|
oreader.Close();
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allCVs;
|
|
}
|
|
|
|
|
|
public List<CV> GetByCvSearch(string name, string email, string mobile)
|
|
{
|
|
List<CV> allCVs = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(CVDA.GetByCvSearch(tc, name, email, mobile));
|
|
allCVs = this.CreateObjects<CV>(oreader);
|
|
oreader.Close();
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allCVs;
|
|
}
|
|
#endregion
|
|
|
|
#region Get(int cVID)
|
|
|
|
public ErCV Get(int cVID)
|
|
{
|
|
ErCV cv = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(ErCVDA.Get(cVID, tc));
|
|
if (oreader.Read())
|
|
{
|
|
cv = this.CreateObject<ErCV>(oreader);
|
|
}
|
|
oreader.Close();
|
|
if (cv != null)
|
|
{
|
|
cv.AllExperiences = GetAllExp(tc, cv.ID);
|
|
cv.AllEduQualifications = GetAllEducations(tc, cv.ID);
|
|
if (cv.AllEduQualifications != null && cv.AllEduQualifications.Count > 0)
|
|
{
|
|
foreach (ErCVEducation item in cv.AllEduQualifications)
|
|
{
|
|
item.EducationLevels = new EducationLevelService().GetByID(tc, item.DegreeTitleID);
|
|
item.Disciplines = new DisciplineService().GetByID(tc, item.DisciplineID);
|
|
}
|
|
}
|
|
cv.CVReferences = GetAllReferences(tc, cv.ID);
|
|
cv.IRFileAttacments = GetAllAttachments(tc, cv.ID, EnumFileType.ErCV);
|
|
}
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
return cv;
|
|
}
|
|
|
|
public ErCV GetErCvByUserID(int userId)
|
|
{
|
|
ErCV cv = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(ErCVDA.GetByUserId(userId, tc));
|
|
if (oreader.Read())
|
|
{
|
|
cv = this.CreateObject<ErCV>(oreader);
|
|
}
|
|
oreader.Close();
|
|
if (cv != null)
|
|
{
|
|
cv.AllExperiences = GetAllExp(tc, cv.ID);
|
|
cv.AllEduQualifications = GetAllEducations(tc, cv.ID);
|
|
if (cv.AllEduQualifications != null && cv.AllEduQualifications.Count > 0)
|
|
{
|
|
foreach (ErCVEducation item in cv.AllEduQualifications)
|
|
{
|
|
item.EducationLevels = new EducationLevelService().GetByID(tc, item.DegreeTitleID);
|
|
item.Disciplines = new DisciplineService().GetByID(tc, item.DisciplineID);
|
|
}
|
|
}
|
|
cv.CVReferences = GetAllReferences(tc, cv.ID);
|
|
cv.CVTrainings = GetAllTrainings(tc, cv.ID);
|
|
var erCVProfilePhoto = GetAllAttachments(tc, cv.ID,EnumFileType.ErCVProfilePhoto);
|
|
if(erCVProfilePhoto != null && erCVProfilePhoto.Count > 0)
|
|
cv.ErCVProfilePhoto = erCVProfilePhoto[0];
|
|
cv.IRFileAttacments = GetAllAttachments(tc, cv.ID, EnumFileType.ErCV);
|
|
}
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
return cv;
|
|
}
|
|
|
|
|
|
|
|
private List<FileAttachment> GetAllAttachments(TransactionContext tc, int cvID, EnumFileType type)
|
|
{
|
|
List<FileAttachment> allExps = null;
|
|
try
|
|
{
|
|
DataReader oreader = new DataReader(FileAttachmentDA.GetByReferenceId(tc, cvID, type));
|
|
allExps = this.CreateirFileAttachmentObjects(oreader);
|
|
oreader.Close();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allExps;
|
|
}
|
|
|
|
private List<FileAttachment> GetAllAttachments(TransactionContext tc, int cvID)
|
|
{
|
|
List<FileAttachment> allExps = null;
|
|
try
|
|
{
|
|
DataReader oreader = new DataReader(FileAttachmentDA.GetErCv(tc, cvID));
|
|
allExps = this.CreateirFileAttachmentObjects(oreader);
|
|
oreader.Close();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allExps;
|
|
}
|
|
|
|
private List<ErCVReference> GetAllReferences(TransactionContext tc, int cVID)
|
|
{
|
|
List<ErCVReference> allExps = null;
|
|
try
|
|
{
|
|
DataReader oreader = new DataReader(ErCVReferenceDA.Get(cVID, tc));
|
|
allExps = this.CreateReferenceObjects(oreader);
|
|
oreader.Close();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allExps;
|
|
}
|
|
|
|
private List<ErCVEducation> GetAllEducations(TransactionContext tc, int cVID)
|
|
{
|
|
List<ErCVEducation> allExps = null;
|
|
try
|
|
{
|
|
DataReader oreader = new DataReader(ErCVDA.GetEducationQualifications(cVID, tc));
|
|
allExps = this.CreateEductionalQualificationObjects(oreader);
|
|
oreader.Close();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allExps;
|
|
}
|
|
|
|
private List<ErCVTraining> GetAllTrainings(TransactionContext tc, int cVID)
|
|
{
|
|
List<ErCVTraining> allExps = null;
|
|
try
|
|
{
|
|
DataReader oreader = new DataReader(ErCVDA.GetErCVTraining(cVID, tc));
|
|
allExps = this.CreateErCVTrainingObjects(oreader);
|
|
oreader.Close();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allExps;
|
|
}
|
|
|
|
public List<ErCV> GetPreviousCVbyRequisitionID(int requisitionID)
|
|
{
|
|
List<ErCV> allCVs = null;
|
|
InternalRecruitment Requisition = null;
|
|
List<ErUserCvSort> usercvs = new List<ErUserCvSort>();
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(CVDA.GetPreviousCvOfRequisition(tc, requisitionID));
|
|
allCVs = this.CreateObjects<ErCV>(oreader);
|
|
oreader.Close();
|
|
foreach (ErCV cv in allCVs)
|
|
{
|
|
if (cv != null)
|
|
{
|
|
cv.AllExperiences = GetAllExp(tc, cv.ID);
|
|
cv.AllEduQualifications = GetAllEducations(tc, cv.ID);
|
|
if (cv.AllEduQualifications != null && cv.AllEduQualifications.Count > 0)
|
|
{
|
|
foreach (ErCVEducation item in cv.AllEduQualifications)
|
|
{
|
|
item.EducationLevels = new EducationLevelService().GetByID(tc, item.DegreeTitleID);
|
|
item.Disciplines = new DisciplineService().GetByID(tc, item.DisciplineID);
|
|
}
|
|
}
|
|
cv.CVReferences = GetAllReferences(tc, cv.ID);
|
|
//cv.IRFileAttacments = GetAllAttachments(tc, cv.ID, EnumFileType.CV);
|
|
}
|
|
}
|
|
|
|
if (allCVs != null && allCVs.Count > 0)
|
|
{
|
|
Requisition = new InternalRecruitmentService().Get(allCVs[0].PositionID);
|
|
if (Requisition != null)
|
|
{
|
|
DataReader oreader1 = new DataReader(CVDA.GetUserCVSortByRequisitionID(requisitionID, tc));
|
|
while (oreader1.Read())
|
|
{
|
|
ErUserCvSort item = new ErUserCvSort();
|
|
item.ID = oreader1.GetInt32("UserCvSortId").Value;
|
|
item.PositionID = oreader1.GetInt32("RequisitionID", 0);
|
|
item.CandidateID = oreader1.GetInt32("CandidateID", 0);
|
|
item.SelectStatus = oreader1.GetBoolean("SelectStatus", false);
|
|
usercvs.Add(item);
|
|
}
|
|
oreader1.Close();
|
|
}
|
|
}
|
|
tc.End();
|
|
if (Requisition != null && Requisition.OnBoradStatus == EnumOnBoradStatus.CVCollection)
|
|
{
|
|
foreach (ErCV cv in allCVs)
|
|
{
|
|
var userCvExit = usercvs?.Where(x => (x.PositionID == cv.PositionID) && (x.CandidateID == cv.CandidateID) && x.SelectStatus == true)?.Any();
|
|
if (userCvExit != null && userCvExit == true)
|
|
{
|
|
cv.SortStatus = "Selected";
|
|
}
|
|
else
|
|
{
|
|
cv.SortStatus = "Rejected";
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allCVs;
|
|
}
|
|
|
|
public bool IsRequisitionComplete(int requisitionID)
|
|
{
|
|
List<ErCVSort> usercvs = new List<ErCVSort>();
|
|
TransactionContext tc = null;
|
|
bool isRequisitionComplete = true;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(CVDA.GetCVSortByRequisitionID(requisitionID, tc));
|
|
while (oreader.Read())
|
|
{
|
|
ErCVSort item = new ErCVSort();
|
|
item.ID = oreader.GetInt32("CVSortID").Value;
|
|
item.EmployeeID = oreader.GetInt32("EmployeeID", 0);
|
|
item.RequisitionID = oreader.GetInt32("RequisitionID", 0);
|
|
item.WfStatus = oreader.GetString("WfStatus") != null ? (EnumWFCvSortStatus)oreader.GetInt32("WfStatus").Value : EnumWFCvSortStatus.Not_Yet_Completed;
|
|
usercvs.Add(item);
|
|
}
|
|
oreader.Close();
|
|
tc.End();
|
|
|
|
if (usercvs != null && usercvs.Count > 0)
|
|
{
|
|
foreach (var item in usercvs)
|
|
{
|
|
if (item.WfStatus == EnumWFCvSortStatus.Not_Yet_Completed)
|
|
{
|
|
isRequisitionComplete = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
isRequisitionComplete = false;
|
|
}
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return isRequisitionComplete;
|
|
}
|
|
|
|
|
|
private List<ErCVExperience> GetAllExp(TransactionContext tc, int cVID)
|
|
{
|
|
List<ErCVExperience> allExps = null;
|
|
try
|
|
{
|
|
DataReader oreader = new DataReader(ErCVDA.GetExperiences(cVID, tc));
|
|
allExps = this.CreateExperienceObjects(oreader);
|
|
oreader.Close();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allExps;
|
|
}
|
|
|
|
public List<FileAttachment> GetCVAttachmentbyID(int cvId)
|
|
{
|
|
List<FileAttachment> oFileAttachments = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin();
|
|
DataReader oreader = new DataReader(FileAttachmentDA.GetByReferenceId(tc, cvId, EnumFileType.ErCV));
|
|
oFileAttachments = this.CreateirFileAttachmentObjects(oreader);
|
|
oreader.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException("Failed to Get IRNotifications: " + ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return oFileAttachments;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region List< CV > GetByQuery(string query)
|
|
|
|
public List<CV> GetByQuery(string query)
|
|
{
|
|
List<CV> allCVs = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(CVDA.GetByQuery(query, tc));
|
|
allCVs = this.CreateObjects<CV>(oreader);
|
|
oreader.Close();
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allCVs;
|
|
}
|
|
|
|
public DataTable dtGetCVByID(int cvID)
|
|
{
|
|
DataSet ds = new DataSet();
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
ds = CVDA.dtGetCVByID(tc, cvID);
|
|
tc.End();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
return ds.Tables[0];
|
|
}
|
|
|
|
//public DataTable dtGetRecruitmentbyCVSort(int employeeID)
|
|
//{
|
|
// DataSet ds = new DataSet();
|
|
// TransactionContext tc = null;
|
|
// try
|
|
// {
|
|
// tc = TransactionContext.Begin(true);
|
|
// ds = CVDA.dtGetRecruitmentbyCVSort(tc, employeeID);
|
|
// tc.End();
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// #region Handle Exception
|
|
|
|
// if (tc != null)
|
|
// tc.HandleError();
|
|
// ExceptionLog.Write(ex);
|
|
// throw new ServiceException(ex.Message, ex);
|
|
|
|
// #endregion
|
|
// }
|
|
// return ds.Tables[0];
|
|
//}
|
|
|
|
public List<RecruitmentByCVSort> dtGetRecruitmentbyCVSort(int employeeID)
|
|
{
|
|
List<RecruitmentByCVSort> sortItems = new List<RecruitmentByCVSort>();
|
|
RecruitmentByCVSort sortItem = null;
|
|
DataSet ds = new DataSet();
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin();
|
|
ds = CVDA.dtGetRecruitmentbyCVSort(tc, employeeID);
|
|
tc.End();
|
|
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
foreach (DataRow Dr in ds.Tables[0].Rows)
|
|
{
|
|
sortItem = new RecruitmentByCVSort();
|
|
sortItem.AssignedDatetime = Convert.ToDateTime(Dr["AssignedDatetime"]).ToString("dd MMM yyyy");
|
|
sortItem.PositionID = Convert.ToInt32(Dr["PositionID"].ToString());
|
|
sortItem.PositionName = Dr["PositionName"] is DBNull ? null : Dr["PositionName"].ToString();
|
|
sortItem.OnBoardStatus = (EnumOnBoradStatus)Convert.ToInt16(Dr["OnBoardStatus"].ToString());
|
|
sortItem.OnBoardStatusString = EnumDescription.GetEnumDescription(sortItem.OnBoardStatus);
|
|
sortItem.TotalCV = Dr["TotalCV"] is DBNull ? 0 : Convert.ToInt32(Dr["TotalCV"].ToString());
|
|
sortItem.CompleteStatus = (EnumWFCvSortStatus)Convert.ToInt16(Dr["WFSTATUS"].ToString());
|
|
sortItems.Add(sortItem);
|
|
}
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(e);
|
|
|
|
throw new ServiceException(e.Message, e);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return sortItems;
|
|
}
|
|
|
|
public List<CVSortDetails> dtCVSortDetails(int positionID)
|
|
{
|
|
List<CVSortDetails> deatilItems = new List<CVSortDetails>();
|
|
CVSortDetails detailItem = null;
|
|
DataSet ds = new DataSet();
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin();
|
|
ds = CVDA.dtCVSortDetails(tc, positionID);
|
|
tc.End();
|
|
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
{
|
|
foreach (DataRow Dr in ds.Tables[0].Rows)
|
|
{
|
|
detailItem = new CVSortDetails();
|
|
detailItem.PositionID = Convert.ToInt32(Dr["PositionID"].ToString());
|
|
detailItem.PositionName = Dr["PositionName"] is DBNull ? null : Dr["PositionName"].ToString();
|
|
detailItem.CandidateName = Dr["Name"] is DBNull ? null : Dr["Name"].ToString();
|
|
detailItem.Mobile = Dr["Mobile"] is DBNull ? null : Dr["Mobile"].ToString();
|
|
detailItem.Email = Dr["Email"] is DBNull ? null : Dr["Email"].ToString();
|
|
detailItem.CandidateID = Convert.ToInt32(Dr["CandidateID"].ToString());
|
|
detailItem.CvID = Convert.ToInt32(Dr["CvID"].ToString());
|
|
detailItem.UserCvSortID = Dr["UserCvSortID"] is DBNull ? 0 : Convert.ToInt32(Dr["UserCvSortID"] is DBNull ? 0.ToString() : Dr["UserCvSortID"].ToString());
|
|
detailItem.IsCVSelect = Convert.ToBoolean(Dr["SELECTSTATUS"] is DBNull ? false.ToString() : Dr["SELECTSTATUS"].ToString());
|
|
detailItem.Remarks = Dr["Remarks"] is DBNull ? null : Dr["Remarks"].ToString(); ;
|
|
deatilItems.Add(detailItem);
|
|
}
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(e);
|
|
|
|
throw new ServiceException(e.Message, e);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return deatilItems;
|
|
}
|
|
public List<FileAttachment> GetAllAttachments(int refID, EnumFileType type)
|
|
{
|
|
List<FileAttachment> allExps = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(FileAttachmentDA.GetByReferenceId(tc, refID, type));
|
|
allExps = this.CreateirFileAttachmentObjects(oreader);
|
|
oreader.Close();
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allExps;
|
|
}
|
|
|
|
public List<CV> GetCVs()
|
|
{
|
|
List<CV> allCVs = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(CVDA.GetCVs(tc));
|
|
allCVs = this.CreateObjects<CV>(oreader);
|
|
oreader.Close();
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allCVs;
|
|
}
|
|
|
|
|
|
|
|
public List<CV> GetCVByIDs(string cVIDs)
|
|
{
|
|
List<CV> allCVs = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(CVDA.Get(cVIDs, tc));
|
|
allCVs = this.CreateObjects<CV>(oreader);
|
|
oreader.Close();
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
return allCVs;
|
|
}
|
|
|
|
public void DeleteUserCvsort(UserCvSort obCv)
|
|
{
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
#region Delete UserCvSort
|
|
CVDA.DeleteUserCvSort(obCv.ID, tc);
|
|
#endregion
|
|
tc.End();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
public void UpdateCompleteStatus(int positionID, int employeeID)
|
|
{
|
|
TransactionContext tc = null;
|
|
int oID = 0;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
CVDA.UpdateEmployeeWFStatus(positionID, employeeID, tc);
|
|
tc.End();
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
List<ErCV> IErCVService.getAllOnlyCV()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
List<ErCV> IErCVService.GetByCvSearch(string name, string email, string mobile)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
List<ErCV> IErCVService.GetCVs()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
List<ErCV> IErCVService.GetCVByIDs(string cVIDs)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
List<ErRecruitmentByCVSort> IErCVService.dtGetRecruitmentbyCVSort(int employeeID)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
List<ErCVSortDetails> IErCVService.dtCVSortDetails(int positionID)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public void DeleteUserCvsort(ErUserCvSort obCv)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
public List<ErCV> GetErCvByRequisitionId(int requisitionId)
|
|
{
|
|
List<ErCV> allCVs = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(ErCVDA.GetPortalCvsByRequisition(tc,requisitionId));
|
|
allCVs = this.CreateObjects<ErCV>(oreader);
|
|
oreader.Close();
|
|
foreach (ErCV cv in allCVs)
|
|
{
|
|
if (cv != null)
|
|
{
|
|
cv.AllExperiences = GetAllExp(tc, cv.ID);
|
|
cv.AllEduQualifications = GetAllEducations(tc, cv.ID);
|
|
if (cv.AllEduQualifications != null && cv.AllEduQualifications.Count > 0)
|
|
{
|
|
foreach (ErCVEducation item in cv.AllEduQualifications)
|
|
{
|
|
item.EducationLevels = new EducationLevelService().GetByID(tc, item.DegreeTitleID);
|
|
item.Disciplines = new DisciplineService().GetByID(tc, item.DisciplineID);
|
|
}
|
|
}
|
|
cv.CVReferences = GetAllReferences(tc, cv.ID);
|
|
cv.IRFileAttacments = GetAllAttachments(tc, cv.ID, EnumFileType.ErCVProfilePhoto);
|
|
}
|
|
}
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allCVs;
|
|
}
|
|
|
|
public List<ErCV> GetErCvByCvids(string cvIds)
|
|
{
|
|
List<ErCV> allCVs = null;
|
|
TransactionContext tc = null;
|
|
try
|
|
{
|
|
tc = TransactionContext.Begin(true);
|
|
DataReader oreader = new DataReader(ErCVDA.GetbyErcvIds(cvIds, tc));
|
|
allCVs = this.CreateObjects<ErCV>(oreader);
|
|
oreader.Close();
|
|
foreach (ErCV cv in allCVs)
|
|
{
|
|
if (cv != null)
|
|
{
|
|
cv.AllExperiences = GetAllExp(tc, cv.ID);
|
|
cv.AllEduQualifications = GetAllEducations(tc, cv.ID);
|
|
if (cv.AllEduQualifications != null && cv.AllEduQualifications.Count > 0)
|
|
{
|
|
foreach (ErCVEducation item in cv.AllEduQualifications)
|
|
{
|
|
item.EducationLevels = new EducationLevelService().GetByID(tc, item.DegreeTitleID);
|
|
item.Disciplines = new DisciplineService().GetByID(tc, item.DisciplineID);
|
|
}
|
|
}
|
|
cv.CVReferences = GetAllReferences(tc, cv.ID);
|
|
cv.IRFileAttacments = GetAllAttachments(tc, cv.ID);
|
|
}
|
|
}
|
|
tc.End();
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
#region Handle Exception
|
|
|
|
if (tc != null)
|
|
tc.HandleError();
|
|
ExceptionLog.Write(ex);
|
|
throw new ServiceException(ex.Message, ex);
|
|
|
|
#endregion
|
|
}
|
|
|
|
return allCVs;
|
|
}
|
|
|
|
#endregion
|
|
#endregion
|
|
|
|
}
|
|
} |