Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        //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));
        }