public void UpdateTaskRating(TaskRating RatingToUpdate)
 {
     TaskRating OldRating = db.TaskRatings.Find(RatingToUpdate.RatingID);
     OldRating.FacultyID = RatingToUpdate.FacultyID;
     OldRating.ReviewDate = RatingToUpdate.ReviewDate;
     db.SaveChanges();
 }
 public int CreateTaskRating(TaskRating RatingToCreate)
 {
     db.TaskRatings.Add(RatingToCreate);
     db.SaveChanges();
     return RatingToCreate.RatingID;
 }
        // POST api/<controller>
        public void Post(CoreRatingDTO RatingToCreate)
        {
            this.FacultyID = Int32.Parse(User.Identity.GetUserId());
            TaskRating NewTaskRating = new TaskRating()
            {
                FacultyID = FacultyID,
                ReviewDate = DateTime.Now,
                VersID = RatingToCreate.VersID
            };
            int NewRatingID = TaskRatings.CreateTaskRating(NewTaskRating);

            CoreRating NewCoreRating = new CoreRating()
            {
                RatingID = NewRatingID,
                CoreTopicID = RatingToCreate.CoreTopicID,
                Cscore = RatingToCreate.CScore,
                Sscore = RatingToCreate.SScore,
                Pscore = RatingToCreate.PScore
            };
            CoreRatings.CreateCoreRating(NewCoreRating);
        }
        // PUT api/<controller>/5
        public void Put(CoreRatingDTO RatingToSave)
        {
            this.FacultyID = Int32.Parse(User.Identity.GetUserId());
            TaskRating UpdatedTaskRating = new TaskRating()
            {
                RatingID = RatingToSave.RatingID,
                FacultyID = FacultyID,
                VersID = RatingToSave.VersID,
                ReviewDate = DateTime.Now
            };
            TaskRatings.UpdateTaskRating(UpdatedTaskRating);

            CoreRating UpdatedCoreRating = new CoreRating()
            {
                RatingID = RatingToSave.RatingID,
                Cscore = RatingToSave.CScore,
                Sscore = RatingToSave.SScore,
                Pscore = RatingToSave.PScore,
            };
            CoreRatings.UpdateCoreRating(UpdatedCoreRating);
        }
        private void insertCoreRating(CoreRating rating, int VersID, int facultyID)
        {
            TaskRating taskRating = new TaskRating() {FacultyID = facultyID, VersID = VersID, ReviewDate = DateTime.Now}; ///ADD Real Faculty ID with LOGIN
            rating.TaskRating = taskRating; rating.CoreTopicID = rating.CoreTopicID == 0 ? rating.CoreTopic.CoreTopicID : rating.CoreTopicID;
            rating.CoreTopic = null;

            db.TaskRatings.Add(taskRating);
            db.CoreRatings.Add(rating);
            db.SaveChanges();
        }
        public void saveImpactRating(CompleteRating impactRating, int VersID)
        {
            ImpactTypeRating saveRating = impactRating.ImpactRating;
            if (impactRating.ImpactRating.RatingID > 0)
            {
                ImpactTypeRating impact = db.ImpactTypeRatings.Find(impactRating.ImpactRating.RatingID);
                impact.Sscore = impactRating.ImpactRating.Sscore;
                impact.Pscore = impactRating.ImpactRating.Pscore;
                impact.Lscore = impactRating.ImpactRating.Lscore;
            }
            else if(saveRating.Sscore != null || saveRating.Pscore != null || saveRating.Lscore != null)
            {
                TaskRating rating = new TaskRating()
                {
                    FacultyID = impactRating.FacultyID == 0 ? 2: impactRating.FacultyID,
                    ReviewDate = DateTime.Now,
                    VersID = VersID,
                };

                ImpactTypeRating impact = new ImpactTypeRating()
                {
                    Sscore = impactRating.ImpactRating.Sscore,
                    Pscore = impactRating.ImpactRating.Pscore,
                    Lscore = impactRating.ImpactRating.Lscore,
                    TaskRating = rating
                };
                db.TaskRatings.Add(rating);
                db.ImpactTypeRatings.Add(impact);
            }
            db.SaveChanges();
        }
        // POST api/<controller>
        public void Post(ImpactDTO value)
        {
            FacultyID = Int32.Parse(User.Identity.GetUserId());
            TaskRating rating = new TaskRating()
            {
                FacultyID = FacultyID,
                ReviewDate = DateTime.Now,
                VersID = value.VersID,
            };

            ImpactTypeRating impactRating = new ImpactTypeRating()
            {
                TaskRating = rating,
                Sscore = value.SScore,
                Pscore = value.PScore,
                Lscore = value.LScore,
            };
            db.TaskRatings.Add(rating);
            db.ImpactTypeRatings.Add(impactRating);
            try
            {
                db.SaveChanges();
            }
            catch
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }
        }