// GET api/<controller>/5
        public List<CoreRatingDTO> Get(int Id)
        {
            int VersID = Id;
            int TVProgramID = TaskVersions.GetTaskVersionProgramID(VersID);
            List<CoreRating> TVCoreRatings = TaskVersions.GetTaskVersionCoreRatings(VersID);
            List<CoreTopic> TVCoreTopics = Programs.GetProgramCoreTopics(TVProgramID);

            List<CoreRatingDTO> CoreTopicRatings = new List<CoreRatingDTO>();

            foreach (CoreTopic topic in TVCoreTopics)
            {
                CoreRating rating;
                try
                {
                    rating = TVCoreRatings.Single(r => r.CoreTopicID == topic.CoreTopicID);
                }
                catch
                {
                    rating = new CoreRating();
                }
                CoreRatingDTO dto = new CoreRatingDTO(topic, rating);
                dto.VersID = VersID;
                CoreTopicRatings.Add(dto);
            }

            return CoreTopicRatings;
        }
 public void UpdateCoreRating(CoreRating UpdatedRating)
 {
     CoreRating OldRating = db.CoreRatings.Find(UpdatedRating.RatingID);
     OldRating.Cscore = UpdatedRating.Cscore;
     OldRating.Sscore = UpdatedRating.Sscore;
     OldRating.Pscore = UpdatedRating.Pscore;
     db.SaveChanges();
 }
        public CoreRatingDTO(CoreTopic Topic, CoreRating Rating)
        {
            this.CoreTopicID = Topic.CoreTopicID;
            this.CoreTopicTitle = Topic.CoreTopicNum + " " + Topic.CoreTopicDesc;
            this.SeminarID = Topic.SeminarID;

            this.RatingID = Rating.RatingID;
            this.CScore = Rating.Cscore;
            this.SScore = Rating.Sscore;
            this.PScore = Rating.Pscore;
        }
 private bool ValidateCoreRating(CoreRating rating)
 {
     if (((rating.Cscore > 0 && rating.Cscore < 4) || rating.Cscore == null) &&
         ((rating.Sscore > 0 && rating.Sscore < 4) || rating.Sscore == null) &&
         ((rating.Pscore > 0 && rating.Pscore < 4) || rating.Pscore == null))
         return true;
     else
         return false;
 }
        // 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 _saveTaskRating(CoreRating rating, int VersID, int facultyID)
 {
     if (rating.RatingID > 0)
         updateCoreRating(rating);
     else
         insertCoreRating(rating, VersID, facultyID);
 }
 private void updateCoreRating(CoreRating rating)
 {
     CoreRating original = db.CoreRatings.Find(rating.RatingID);
     original.Cscore = rating.Cscore;
     original.Sscore = rating.Sscore;
     original.Pscore = rating.Pscore;
     db.SaveChanges();
 }
        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 CreateCoreRating(CoreRating RatingToCreate)
 {
     db.CoreRatings.Add(RatingToCreate);
     db.SaveChanges();
 }