public CustomTrainerFeedbackModel GetTrainerFeedbackListForTrainer(int batchId, string traineeId) { var customTrainerFeedback = new CustomTrainerFeedbackModel(); var feedbackList = db.TrainersFeedback.Where(f => f.BatchID == batchId && f.TraineeID.ToString() == traineeId).OrderByDescending(d => d.DateCreated).ToList(); int traineeIntId = Convert.ToInt32(traineeId); var user = db.Tranner.FirstOrDefault(us => us.Id == traineeIntId); var inducteeBatchId = _Inductee.Get(user.Email).BatchID; var traineesBatch = db.Batch.Where(B => B.Id == inducteeBatchId).Select(B => B).FirstOrDefault(); customTrainerFeedback.BatchID = traineesBatch.Id; customTrainerFeedback.BatchName = traineesBatch.Name; customTrainerFeedback.BatchStartDate = traineesBatch.BatchDates.OrderBy(p => p.BatchDate).Select(p => p.BatchDate).FirstOrDefault(); customTrainerFeedback.BatchEndDate = traineesBatch.BatchDates.OrderBy(p => p.BatchDate).Select(p => p.BatchDate).LastOrDefault(); customTrainerFeedback.TrainerID = traineesBatch.trainer.Id; customTrainerFeedback.TrainerName = traineesBatch.trainer.Name; customTrainerFeedback.TrainerEmail = traineesBatch.trainer.Email; var feedbackReponseList = new List <FeedbackResponse>(); if (feedbackList.Any()) //if records exist { foreach (var feedback in feedbackList) { var feedbackReponse = new FeedbackResponse(); feedbackReponse.ID = feedback.ID; feedbackReponse.Rating = feedback.Rating; feedbackReponse.WhatWentWell = feedback.WhatWentWell; feedbackReponse.DidnotGoWell = feedback.DidnotGoWell; feedbackReponse.CanBeImproved = feedback.CanBeImproved; feedbackReponse.TraineeID = feedback.TraineeID; feedbackReponse.TraineeName = db.Tranner.Find(feedback.TraineeID).Name; feedbackReponseList.Add(feedbackReponse); } } customTrainerFeedback.FeedbackReponse = feedbackReponseList; return(customTrainerFeedback); }
public ActionResult TrainerFeedback(int id) { string currentUserId = Session["UserId"] == null ? string.Empty : Session["UserId"].ToString(); var userType = Session["UserType"] == null?UserType.None.ToString() : Session["UserType"].ToString(); var trainerFeedbackList = new CustomTrainerFeedbackModel(); string currentUserMailId = Session["UserEmailId"] == null ? string.Empty : Session["UserEmailId"].ToString(); var batchId = _Inductee.FindByEmail(currentUserMailId); if (userType == UserType.Trainer.ToString()) { trainerFeedbackList = TrainerFeedbackRepo.GetTrainerFeedbackList(id); } else if (userType == UserType.Trainee.ToString()) { trainerFeedbackList = TrainerFeedbackRepo.GetTrainerFeedbackListForTrainer(batchId.BatchID, currentUserId); } TempData["CurrentBatchID"] = id; return(View("TrainerFeedback", trainerFeedbackList)); }
public CustomTrainerFeedbackModel GetTrainerFeedbackList(int batchId) { var customTrainerFeedback = new CustomTrainerFeedbackModel(); var feedbackList = db.TrainersFeedback.Where(f => f.BatchID == batchId).OrderByDescending(d => d.DateCreated); var batchDetail = db.Batch.Find(batchId); var traineeList = db.Tranner.ToList(); customTrainerFeedback.BatchID = batchDetail.Id; customTrainerFeedback.BatchName = batchDetail.Name; customTrainerFeedback.BatchStartDate = batchDetail.BatchDates.OrderBy(p => p.BatchDate).Select(p => p.BatchDate).FirstOrDefault(); customTrainerFeedback.BatchEndDate = batchDetail.BatchDates.OrderBy(p => p.BatchDate).Select(p => p.BatchDate).LastOrDefault(); customTrainerFeedback.TrainerID = batchDetail.trainer.Id; customTrainerFeedback.TrainerName = batchDetail.trainer.Name; customTrainerFeedback.TrainerEmail = batchDetail.trainer.Email; var feedbackReponseList = new List <FeedbackResponse>(); if (feedbackList.Count() > 0) //if records exist { foreach (var feedback in feedbackList) { var feedbackReponse = new FeedbackResponse(); feedbackReponse.ID = feedback.ID; feedbackReponse.Rating = feedback.Rating; feedbackReponse.WhatWentWell = feedback.WhatWentWell; feedbackReponse.DidnotGoWell = feedback.DidnotGoWell; feedbackReponse.CanBeImproved = feedback.CanBeImproved; feedbackReponse.TraineeID = feedback.TraineeID; feedbackReponse.TraineeName = traineeList.Find(tr => tr.Id == feedback.TraineeID).Name; feedbackReponseList.Add(feedbackReponse); } } customTrainerFeedback.FeedbackReponse = feedbackReponseList; return(customTrainerFeedback); }