public async Task <ApiResponse> Handle(GetEmployeeAppraisalDetailQuery request, CancellationToken cancellationToken) { ApiResponse response = new ApiResponse(); try { List <EmployeeAppraisalDetailsModel> lst = new List <EmployeeAppraisalDetailsModel>(); var emplst = await _dbContext.EmployeeAppraisalDetails.Where(x => x.OfficeId == request.OfficeId && x.AppraisalStatus == false && x.IsDeleted == false).ToListAsync(); foreach (var item in emplst) { EmployeeAppraisalDetailsModel model = new EmployeeAppraisalDetailsModel(); var quesLst = await _dbContext.EmployeeAppraisalQuestions.Include(x => x.AppraisalGeneralQuestions).Where(x => x.EmployeeId == item.EmployeeId && x.CurrentAppraisalDate == item.CurrentAppraisalDate).ToListAsync(); model.EmployeeAppraisalDetailsId = item.EmployeeAppraisalDetailsId; model.EmployeeId = item.EmployeeId; model.EmployeeCode = item.EmployeeCode; model.EmployeeName = item.EmployeeName; model.FatherName = item.FatherName; model.Position = item.Position; model.Department = item.Department; model.Qualification = item.Qualification; model.DutyStation = item.DutyStation; model.RecruitmentDate = item.RecruitmentDate; model.AppraisalPeriod = item.AppraisalPeriod; model.CurrentAppraisalDate = item.CurrentAppraisalDate; model.OfficeId = item.OfficeId; model.TotalScore = item.TotalScore; model.AppraisalStatus = item.AppraisalStatus; foreach (var element in quesLst) { EmployeeAppraisalQuestionModel questions = new EmployeeAppraisalQuestionModel(); questions.QuestionEnglish = element.AppraisalGeneralQuestions.Question; questions.QuestionDari = element.AppraisalGeneralQuestions.DariQuestion; questions.SequenceNo = element.AppraisalGeneralQuestions.SequenceNo.Value; questions.AppraisalGeneralQuestionsId = element.AppraisalGeneralQuestionsId; questions.Score = element.Score; questions.Remarks = element.Remarks; questions.EmployeeAppraisalQuestionsId = element.EmployeeAppraisalQuestionsId; model.EmployeeAppraisalQuestionList.Add(questions); } lst.Add(model); } response.data.EmployeeAppraisalDetailsModelLst = lst; response.StatusCode = StaticResource.successStatusCode; response.Message = "Success"; } catch (Exception ex) { response.StatusCode = StaticResource.failStatusCode; response.Message = ex.Message; } return(response); }
public async Task <ApiResponse> Handle(GetEmployeeAppraisalByIdQuery request, CancellationToken cancellationToken) { ApiResponse response = new ApiResponse(); try { var empAppraisalDetails = await _dbContext.EmployeeAppraisalDetails.Where(x => x.EmployeeId == request.EmployeeId && x.CurrentAppraisalDate.Date.Day == request.CurrentAppraisalDate.Date.Day && x.CurrentAppraisalDate.Date.Month == request.CurrentAppraisalDate.Date.Month && x.CurrentAppraisalDate.Date.Year == request.CurrentAppraisalDate.Date.Year && x.IsDeleted == false && x.AppraisalStatus == true).OrderByDescending(x => x.CurrentAppraisalDate).FirstOrDefaultAsync(); if (empAppraisalDetails != null) { EmployeeAppraisalDetailsModel model = new EmployeeAppraisalDetailsModel(); var quesLst = await _dbContext.EmployeeAppraisalQuestions.Include(x => x.AppraisalGeneralQuestions).Where(x => x.EmployeeId == empAppraisalDetails.EmployeeId && x.CurrentAppraisalDate.Date.Day == request.CurrentAppraisalDate.Date.Day && x.CurrentAppraisalDate.Date.Month == request.CurrentAppraisalDate.Date.Month && x.CurrentAppraisalDate.Date.Year == request.CurrentAppraisalDate.Date.Year).ToListAsync(); model.EmployeeAppraisalDetailsId = empAppraisalDetails.EmployeeAppraisalDetailsId; model.EmployeeId = empAppraisalDetails.EmployeeId; model.EmployeeCode = empAppraisalDetails.EmployeeCode; model.EmployeeName = empAppraisalDetails.EmployeeName; model.FatherName = empAppraisalDetails.FatherName; model.Position = empAppraisalDetails.Position; model.Department = empAppraisalDetails.Department; model.Qualification = empAppraisalDetails.Qualification; model.DutyStation = empAppraisalDetails.DutyStation; model.RecruitmentDate = empAppraisalDetails.RecruitmentDate; model.AppraisalPeriod = empAppraisalDetails.AppraisalPeriod; model.CurrentAppraisalDate = empAppraisalDetails.CurrentAppraisalDate; model.OfficeId = empAppraisalDetails.OfficeId; model.TotalScore = empAppraisalDetails.TotalScore; model.AppraisalStatus = empAppraisalDetails.AppraisalStatus; foreach (var element in quesLst) { EmployeeAppraisalQuestionModel questions = new EmployeeAppraisalQuestionModel(); questions.QuestionEnglish = element.AppraisalGeneralQuestions.Question; questions.QuestionDari = element.AppraisalGeneralQuestions.DariQuestion; questions.SequenceNo = element.AppraisalGeneralQuestions.SequenceNo.Value; questions.AppraisalGeneralQuestionsId = element.AppraisalGeneralQuestionsId; questions.Score = element.Score; questions.Remarks = element.Remarks; model.EmployeeAppraisalQuestionList.Add(questions); } response.data.EmployeeAppraisalDetailsModel = model; } response.StatusCode = StaticResource.successStatusCode; response.Message = "Success"; } catch (Exception ex) { response.StatusCode = StaticResource.failStatusCode; response.Message = ex.Message; } return(response); }