public async Task <IHttpActionResult> SaveInterviewDetails(InterviewDetailsDTO interviewDetails) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { if (interviewDetails != null) { var claimsIdentity = RequestContext.Principal.Identity as ClaimsIdentity; var userName = claimsIdentity.Claims.Where(x => x.Type == "sub").Select(y => y.Value).SingleOrDefault(); var user = await _authRepository.FindUser(userName); var savedInterviewDetails = _unitOfWork.GetInterviewRepository().SaveInterviewDetails(interviewDetails, user.Id); await _unitOfWork.Save(); var response = new { interviewId = savedInterviewDetails.InterviewDetailId }; return(Ok(response)); } else { return(BadRequest()); } } catch (Exception e) { return(InternalServerError(e)); } }
public InterviewDetail SaveInterviewDetails(InterviewDetailsDTO interviewDetails, string userId) { var interviewDetailEntity = new InterviewDetail(); interviewDetailEntity.CompanyName = interviewDetails.CompanyName; interviewDetailEntity.Designation = interviewDetails.Designation; interviewDetailEntity.HiringIndividualName = interviewDetails.HiringIndividualName; interviewDetailEntity.InterviewDate = interviewDetails.InterviewDate; interviewDetailEntity.InterviewTypeId = interviewDetails.InterviewTypeId; interviewDetailEntity.UserId = userId; interviewDetailEntity.ColorCode = interviewDetails.Tag; return(_dbContext.InterviewDetails.Add(interviewDetailEntity)); }
public async Task <List <InterviewDetailsDTO> > GetInterviewDetails(string userId) { List <InterviewDetailsDTO> interviewDetailsList = new List <InterviewDetailsDTO>(); var interviewDetails = await _dbContext.InterviewDetails.Where(x => x.UserId == userId).ToListAsync(); foreach (var item in interviewDetails) { var interviewDetailItem = new InterviewDetailsDTO(); interviewDetailItem.CompanyName = item.CompanyName; interviewDetailItem.Designation = item.Designation; interviewDetailItem.HiringIndividualName = item.HiringIndividualName; interviewDetailItem.InterviewDate = item.InterviewDate; interviewDetailItem.InterviewTypeId = item.InterviewTypeId; interviewDetailItem.Tag = item.ColorCode; interviewDetailItem.InterviewId = item.InterviewDetailId; interviewDetailItem.InterviewTypeName = _dbContext.InterviewTypes.FirstOrDefault(x => x.InterviewTypeId == item.InterviewTypeId).InterviewTypeName; var stages = _dbContext.Stages.Where(x => x.InterviewTypeId == interviewDetailItem.InterviewTypeId); if (stages != null && stages.Any()) { interviewDetailItem.TotalNumberOfStages = stages.Count(); interviewDetailItem.CompletedNumberOfStages = _dbContext.InterviewCompletedStageMappings.Count(x => x.InterviewId == interviewDetailItem.InterviewId); //if (completedStages != null) // interviewDetailItem.CompletedNumberOfStages = completedStages.Count(); } else { interviewDetailItem.TotalNumberOfStages = 0; } GetInterviewStage_Result stageDetails = _dbContext.GetInterviewStage(item.InterviewDetailId).FirstOrDefault(); if (stageDetails != null) { interviewDetailItem.CurrentStageId = stageDetails.Id; interviewDetailItem.CurrentStageName = stageDetails.StageName; } interviewDetailsList.Add(interviewDetailItem); } return(interviewDetailsList); }