public static PerformanceEvaluationSkillModel MapSkillModelToPerformanceEvaluationSkillModel(this SkillModel skillModel, PerformanceEvaluation pe) { if (skillModel == null) { return(null); } var performanceEvaluationSkillModel = new PerformanceEvaluationSkillModel { PerformanceEvaluationId = pe.PerformanceEvaluationId, Skill = skillModel, SkillId = skillModel.Id, }; return(performanceEvaluationSkillModel); }
public static PerformanceEvaluationSkillModel MapPerformanceEvaluationSkillToPerformanceEvaluationSkillModel(this PerformanceEvaluationSkill performanceEvaluationSkill) { if (performanceEvaluationSkill == null) { return(null); } var performanceEvaluationSkillModel = new PerformanceEvaluationSkillModel { Id = performanceEvaluationSkill.PerformanceEvaluationSkillId, Grade = performanceEvaluationSkill.Grade, Comment = performanceEvaluationSkill.PESkillComment, Skill = performanceEvaluationSkill.Skill.MapSkillToSkillModel(), SkillId = performanceEvaluationSkill.SkillId, PerformanceEvaluationId = performanceEvaluationSkill.PerformanceEvaluationId }; return(performanceEvaluationSkillModel); }
//TO DO:Change or Remove public static PerformanceEvaluationSkill MapPerformanceEvaluationSkillModelToPerformanceEvaluationSkill(this PerformanceEvaluationSkillModel performanceEvaluationSkillModel) { if (performanceEvaluationSkillModel == null) { return(null); } var performanceEvaluationSkill = new PerformanceEvaluationSkill { Grade = performanceEvaluationSkillModel.Grade, PESkillComment = performanceEvaluationSkillModel.Comment, SkillId = performanceEvaluationSkillModel.SkillId, Skill = performanceEvaluationSkillModel.Skill.MapSkillModelToSkill(), PerformanceEvaluationId = performanceEvaluationSkillModel.PerformanceEvaluationId, PerformanceEvaluation = performanceEvaluationSkillModel.PerformanceEvaluation.MapPerformanceEvaluationModelToPerformanceEvaluation() }; return(performanceEvaluationSkill); }
public PerformanceEvaluationModel SaveOrSubmitPerformanceEvaluation(PerformanceEvaluationModel performanceEvaluationModel, bool isSubmit = false) { List <string> errorMessage = null; if (!performanceEvaluationModel.IsValid(out errorMessage, isSubmit)) { throw new ArgumentException("performanceEvaluationModel", String.Join("; ", errorMessage)); } var performanceEvaluationSkillsOfExistingPerformanceEvaluation = _context.PerformanceEvaluationsSkills .Include(x => x.Skill) .Where(x => x.PerformanceEvaluationId == performanceEvaluationModel.Id) .ToList(); foreach (var peSkill in performanceEvaluationModel.PerformanceEvaluationSkills) { var peSkillId = peSkill.SkillId; if (performanceEvaluationSkillsOfExistingPerformanceEvaluation .Any(x => x.SkillId == peSkillId)) { var peSkillOfExistingPe = performanceEvaluationSkillsOfExistingPerformanceEvaluation .Where(x => x.SkillId == peSkill.SkillId) .FirstOrDefault(); if (peSkill.Grade != null && peSkillOfExistingPe.Grade != peSkill.Grade) { peSkillOfExistingPe.Grade = peSkill.Grade; } if (peSkill.Comment != null && peSkillOfExistingPe.PESkillComment != peSkill.Comment) { peSkillOfExistingPe.PESkillComment = peSkill.Comment; } } else { if (peSkill.Grade != null || peSkill.Comment != null) { // Add new entry in PerformanceEvaluationSkill table if reviewer wrote a comment or a grade var performanceEvaluationSkillModel = new PerformanceEvaluationSkillModel { PerformanceEvaluationId = performanceEvaluationModel.Id, SkillId = peSkill.SkillId, Grade = peSkill.Grade, Comment = peSkill.Comment }; var performanceEvaluationSkill = performanceEvaluationSkillModel .MapPerformanceEvaluationSkillModelToPerformanceEvaluationSkill(); _context.PerformanceEvaluationsSkills.Add(performanceEvaluationSkill); _context.SaveChanges(); performanceEvaluationSkillModel.Id = performanceEvaluationSkill.PerformanceEvaluationId; } } } //Include users and return performance evaluation var performanceEvaluation = _context.PerformanceEvaluations .Include(x => x.Consultant) .Include(x => x.Reviewer) .Where(x => x.PerformanceEvaluationId == performanceEvaluationModel.Id) .FirstOrDefault(); if (isSubmit) { performanceEvaluation.IsSubmitted = true; performanceEvaluation.SubmittedDate = DateTime.Now; _context.SaveChanges(); } return(performanceEvaluation.MapPerformanceEvaluationToPerformanceEvaluationModel(true)); }