public IResult AddCandidate(CandidateViewModel candidateViewModel, CandidateDocumentViewModel candidateDocumentViewModel) { var result = new Result { Operation = Operation.Create, Status = Status.Success }; try { var candidateModel = new Candidates(); candidateModel.MapFromViewModel(candidateViewModel, (ClaimsIdentity)_principal.Identity); candidateModel.QualificationId = candidateViewModel.Qualification; #region Insert OpeningCandidate var openingCandidate = new OpeningCandidates(); openingCandidate.OpeningId = candidateViewModel.OpeningId; openingCandidate.Candidate = candidateModel; openingCandidate.MapAuditColumns((ClaimsIdentity)_principal.Identity); #endregion #region Insert Organization Organizations organization = null; if (candidateViewModel.OrganizationId != 0) { candidateModel.OrganizationId = candidateViewModel.OrganizationId; } else { organization = new Organizations { Name = candidateViewModel.OrganizationName }; organization.MapAuditColumns((ClaimsIdentity)_principal.Identity); candidateModel.Organisation = organization; } #endregion #region Insert Candidate Document var candidateDocumentModel = new CandidateDocuments(); candidateDocumentModel.MapFromViewModel(candidateDocumentViewModel, (ClaimsIdentity)_principal.Identity); candidateModel.CandidateDocuments.Add(candidateDocumentModel); #endregion _candidateRepository.AddCandidate(candidateModel, openingCandidate); result.Body = candidateModel.CandidateId; } catch (Exception e) { result.Message = e.Message; result.Status = Status.Error; } return(result); }
public async Task <CandidateDetails> GetCandidateDetails(int ID) { CandidateDetails details = null; List <CandidateDocuments> documents = new List <CandidateDocuments>(); CandidateDocuments document = null; try { var result = await(from c in _context.Candidate join slc in _context.ShortListedCandidate on c.CandidateId equals slc.CandidateId join p in _context.Position on slc.PositionId equals p.PositionId join i in _context.Interview on slc.ShortListedCandidateId equals i.ShortlistedCandidateId where c.CandidateId == ID select new { c.CandidateId, c.FirstName, c.LastName, c.Nationality, c.Idnumber, c.Dob, c.Race, c.Gender, c.CurrentSalary, c.CellPhone, c.AlterCellPhone, c.WorkNumber, c.Email, c.DecisionStatus, c.FeedBack, p.PositionTitle, p.PositionType, p.BusinessUnit, p.Budget, p.EndDate, i.InterviewDate, i.InterviewType, i.InterviewTime, i.Location }).FirstAsync(); if (result != null) { details = new CandidateDetails(result.CandidateId) { FirstName = result.FirstName.Trim(), LastName = result.LastName.Trim(), Gender = result.Gender.Trim(), Nationality = result.Nationality.Trim(), Idnumber = result.Idnumber.Trim(), Dob = result.Dob, Race = result.Race.Trim(), CurrentSalary = result.CurrentSalary, CellPhone = result.CellPhone.Trim(), AlterCellPhone = result.AlterCellPhone.Trim(), WorkNumber = result.WorkNumber.Trim(), Email = result.Email.Trim(), FeedBack = result.FeedBack.Trim(), DecisionStatus = result.DecisionStatus.Trim(), InterviewDate = result.InterviewDate, InterviewType = result.InterviewType.Trim(), Location = result.Location.Trim(), InterviewTime = result.InterviewTime, PositionTitle = result.PositionTitle.Trim(), PositionType = result.PositionType.Trim(), Budget = result.Budget, EndDate = result.EndDate }; var docs = (from d in _context.Document where d.CandidateId == ID select new { d.DocumentId, d.DocumentName, d.Document1, d.TestMark, d.TestType, d.Date }).ToList(); foreach (var item in docs) { document = new CandidateDocuments() { DocumentName = item.DocumentName.Trim(), Document1 = item.Document1, TestType = item.TestType, TestMark = item.TestMark, Date = item.Date, }; documents.Add(document); } details.Documents = documents; } } catch (Exception) { } return(details); }