Ejemplo n.º 1
0
 public bool SaveSubtopicContentProgress(int subtopicContentId, int userId)
 {
     if ((subtopicContentId > 0 && userId > 0) && LearningPathDataAccessor.SaveSubtopicContentProgress(subtopicContentId, userId))
     {
         CourseTrackerDetails courseDetails = LearningPathDataAccessor.GetCourseDetailBasedOnParameters(userId, 0, subtopicContentId);
         if (courseDetails != null && courseDetails.PercentageCompleted.CompareTo(100) == 0)
         {
             return(LearningPathDataAccessor.CompleteCourseForTrainee(courseDetails.Id, userId) &&
                    new FeedbackBl().GenerateCourseFeedback(courseDetails.Id, userId));
         }
         return(true);
     }
     return(false);
 }
Ejemplo n.º 2
0
        public bool UpdateAssignmentProgress(Assignment data, User currentUser, out int feedbackId)
        {
            feedbackId = 0;
            bool isAssignmentFeedback = false;

            if (data != null && data.TraineeId > 0)
            {
                // return false if trainee will not allowed to approve the completion of assignment or trainer cannot mark assignment as completed or trainer cannot approve/reassign assignment without feedback.
                if ((currentUser.IsTrainee && data.TraineeId != currentUser.UserId && data.IsApproved) || (!currentUser.IsTrainee && data.IsCompleted && !data.IsApproved) || (!currentUser.IsTrainee && data.Feedback.Count < 1))
                {
                    return(false);
                }

                if (!currentUser.IsTrainee)
                {
                    var feedback = data.Feedback.FirstOrDefault(x => x.FeedbackId == 0);
                    feedback.AddedBy  = currentUser;
                    feedback.AddedFor = new UserBl().GetUserByUserId(data.TraineeId);
                    feedback.AddedOn  = DateTime.Now;

                    if (feedback.FeedbackType.FeedbackTypeId == (int)Common.Enumeration.FeedbackType.Comment)
                    {
                        feedback.Rating = 0;
                    }
                    feedback.Skill   = new Skill();
                    feedback.Project = new Project();

                    feedbackId = FeedbackDataAccesor.AddFeedback(feedback);
                    if (feedbackId == 0 || !FeedbackDataAccesor.AddFeedbackAssignmentMapping(feedbackId, data.Id))
                    {
                        return(false);
                    }

                    feedback.FeedbackId = feedbackId;

                    new NotificationBl().AddFeedbackNotification(feedback);
                    data.ApprovedBy = currentUser.UserId;

                    if (feedback.FeedbackType.FeedbackTypeId == (int)Common.Enumeration.FeedbackType.Assignment)
                    {
                        isAssignmentFeedback = true;
                    }
                }

                var status = LearningPathDataAccessor.UpdateAssignmentProgress(data);

                if (!status || !isAssignmentFeedback || currentUser.IsTrainee)
                {
                    return(status);
                }

                CourseTrackerDetails courseDetails = LearningPathDataAccessor.GetCourseDetailBasedOnParameters(data.TraineeId, data.Id);

                if (courseDetails != null && courseDetails.PercentageCompleted.CompareTo(100) == 0)
                {
                    return(LearningPathDataAccessor.CompleteCourseForTrainee(courseDetails.Id, data.TraineeId) &&
                           new FeedbackBl().GenerateCourseFeedback(courseDetails.Id, data.TraineeId));
                }
                return(true);
            }
            return(false);
        }