public DomainModelResponse RemoveUserFromGroup(UpdateUserGroup request)
        {
            AspNetUsers up = _repUser.Get(filter: f => f.Email == request.emailId).FirstOrDefault();

            if (up == null)
            {
                _securityResponse.addResponse("RemoveUserFromGroup", MessageCodes.ErrDoesnotExist, "User : "******"RemoveUserFromGroup", MessageCodes.ErrDoesnotExist, "Course : " + request.courseCode);
                throw _securityResponse;
            }

            EntityModel.CourseUser cur = _repCourseUserRole.Get(filter: f => f.UserId == up.Id && f.CourseId == course.CourseId).FirstOrDefault();
            if (cur == null)
            {
                _securityResponse.addResponse("RemoveUserFromGroup", MessageCodes.ErrDoesnotExist, "CourseUserRole for User : "******"RemoveUserFromGroup", MessageCodes.InfoSavedSuccessfully, "CourseUserRole for user : " + request.emailId);
            return(_securityResponse);
        }
Esempio n. 2
0
        public DomainModelResponse Add(CourseAddRequest request)
        {
            GroupType gt = _repGroupType.Get(filter: x => x.GroupTypeCode == request.GroupType).FirstOrDefault();

            Course course = new Course()
            {
                CourseCode        = request.CourseCode,
                CourseName        = request.CourseName,
                CourseDescription = request.CourseDescription,
                LastChangedTime   = DateTime.UtcNow,
                DesiredSkillSets  = request.DesiredSkillSets,
                GroupType         = gt,
                Roaster           = null,
                Term                     = request.Term,
                PrefGroupTypeId          = gt.GroupTypeId,
                PrefGroupSize            = request.GroupSize,
                SimilarSkillSetPreffered = request.PreferSimiliarSkillSet
            };

            _repCourse.Add(course);
            _uow.Commit();
            course = _repCourse.Get(filter: f => f.CourseCode == request.CourseCode).FirstOrDefault();

            if (request.userList != null)
            {
                List <string> roleCodes = request.userList.Select(x => x.roleCode).ToList();
                List <string> emailIds  = request.userList.Select(x => x.emailId).ToList();

                List <AspNetRoles> roles        = _repRole.Get(filter: f => roleCodes.Contains(f.Name)).ToList();
                List <AspNetUsers> userProfiles = _repUserProfile.Get(filter: f => emailIds.Contains(f.Email)).ToList();

                foreach (var user in request.userList)
                {
                    EntityModel.CourseUser cur = new EntityModel.CourseUser()
                    {
                        CourseId        = course.CourseId,
                        Course          = course,
                        UserId          = userProfiles.Where(x => x.Email == user.emailId).FirstOrDefault().Id,
                        AspNetUsers     = userProfiles.Where(x => x.Email == user.emailId).FirstOrDefault(),
                        LastChangedTime = DateTime.UtcNow
                    };
                    _repCourseUserRole.Add(cur);
                }
                _uow.Commit();
            }
            _courseResponse.addResponse("Add", MessageCodes.InfoCreatedSuccessfully, "Course : " + request.CourseCode);
            return(_courseResponse);
        }
        public DomainModelResponse UpdateCourseUserAnswer(CourseUserUpdateRequest request)
        {
            AspNetUsers up     = _repUserProfile.Get(filter: f => f.Email == request.email).FirstOrDefault();
            Course      course = _repCourse.Get(filter: f => f.CourseCode == request.courseCode).FirstOrDefault();

            EntityModel.CourseUser cur = _repCourseUserRole.Get(filter: f => f.UserId == up.Id && f.CourseId == course.CourseId).FirstOrDefault();
            bool isAdd = false;

            if (cur == null) //User is nto added
            {
                isAdd = true;
                cur   = new EntityModel.CourseUser()
                {
                    CourseId    = course.CourseId,
                    Course      = course,
                    UserId      = up.Id,
                    AspNetUsers = up
                };
            }
            if (!string.IsNullOrWhiteSpace(request.answerSet))
            {
                cur.AnswerSet = request.answerSet;
            }
            if (!string.IsNullOrWhiteSpace(request.GroupCode))
            {
                Group grp = _repGroup.Get(filter: f => f.GroupCode == request.GroupCode).FirstOrDefault();
                cur.GroupId = grp.GroupId;
                cur.Group   = grp;
            }
            if (isAdd)
            {
                _repCourseUserRole.Add(cur);
                _courseUserResponse.addResponse("Add", MessageCodes.InfoCreatedSuccessfully, "Course User Role for User : "******"Update", MessageCodes.InfoSavedSuccessfully, "Course User Role for User : " + request.email);
            }
            _uow.Commit();
            return(_courseUserResponse);
        }
Esempio n. 4
0
        public DomainModelResponse Update(CourseUpdateRequest request)
        {
            Course course       = _repCourse.Get(filter: f => f.CourseCode == request.CourseCode).FirstOrDefault();
            bool   updateCourse = false;

            if (request.CourseName != null) //Course name update
            {
                course.CourseName = request.CourseName;
                updateCourse      = true;
            }
            if (request.CourseDescription != null)
            {
                course.CourseDescription = request.CourseDescription;
                updateCourse             = true;
            }

            if (request.QuestionnaireCode != null)
            {
                EntityModel.Questionnaire questionnaire = _repQuestionnaire.Get(filter: f => f.QuestionnaireCode == request.QuestionnaireCode).FirstOrDefault();
                course.QuestionnaireId = questionnaire.QuestionnaireId;
                course.Questionnaire   = questionnaire;
                updateCourse           = true;
            }

            if (!string.IsNullOrWhiteSpace(request.Roaster))
            {
                course.Roaster = request.Roaster;
                updateCourse   = true;
            }

            if (updateCourse)
            {
                _repCourse.Update(course);
            }

            if (request.CourseNewUsers != null)
            {
                List <string> roleCodes = request.CourseNewUsers.Select(x => x.roleCode).ToList();
                List <string> emailIds  = request.CourseNewUsers.Select(x => x.emailId).ToList();

                List <AspNetUsers> userProfiles = _repUserProfile.Get(filter: f => emailIds.Contains(f.Email)).ToList();

                foreach (var user in request.CourseNewUsers)
                {
                    EntityModel.CourseUser cur = new EntityModel.CourseUser()
                    {
                        CourseId        = course.CourseId,
                        Course          = course,
                        UserId          = userProfiles.Where(x => x.Email == user.emailId).FirstOrDefault().Id,
                        AspNetUsers     = userProfiles.Where(x => x.Email == user.emailId).FirstOrDefault(),
                        LastChangedTime = DateTime.UtcNow
                    };
                    _repCourseUserRole.Add(cur);
                }
            }

            if (request.CourseDeleteUsers != null)
            {
                List <string> roleCodes = request.CourseDeleteUsers.Select(x => x.roleCode).ToList();
                List <string> emailIds  = request.CourseDeleteUsers.Select(x => x.emailId).ToList();

                List <AspNetUsers> userProfiles = _repUserProfile.Get(filter: f => emailIds.Contains(f.Email)).ToList();

                foreach (var user in request.CourseDeleteUsers)
                {
                    string UserId = userProfiles.Where(x => x.Email == user.emailId).FirstOrDefault().Id;

                    EntityModel.CourseUser cur = _repCourseUserRole.Get(filter: f => f.CourseId == course.CourseId && f.UserId == UserId).FirstOrDefault();
                    _repCourseUserRole.Delete(cur);
                }
            }

            _uow.Commit();
            _courseResponse.addResponse("Update", MessageCodes.InfoSavedSuccessfully, "Course : " + request.CourseCode);
            return(_courseResponse);
        }
Esempio n. 5
0
        public GroupSummaryForUser GetGroupSummary(string userEmail, string courseCode)
        {
            GroupSummaryForUser gsfu = new GroupSummaryForUser();
            AspNetUsers         up   = _repUserProfile.Get(filter: f => f.Email == userEmail).FirstOrDefault();
            Course course            = _repCourse.Get(filter: f => f.CourseCode == courseCode, includes: "Groups,CourseUserRoles").FirstOrDefault();

            EntityModel.CourseUser cur = _repCourseUserRole.Get(filter: f => f.CourseId == course.CourseId && f.UserId == up.Id, includes: "Group").FirstOrDefault();
            if (cur.GroupId.HasValue)
            {
                gsfu.registeredGroup = new GroupSummary()
                {
                    GroupCode      = cur.Group.GroupCode,
                    GroupName      = cur.Group.GroupName,
                    activeTimeZone = cur.Group.TimeZone,
                    Objective      = cur.Group.Objective
                };
            }
            else
            {
                gsfu.registeredGroup = null;
            }
            List <string> answers = cur.AnswerSet.Split(',').ToList();

            gsfu.suggestedGroups = new List <GroupSummary>();
            foreach (EntityModel.CourseUser cu in course.CourseUserRoles)
            {
                if (cu.UserId != up.Id && !string.IsNullOrWhiteSpace(cu.AnswerSet))
                {
                    int matchPercentage = getMatchPercentage(answers, cu.AnswerSet.Split(',').ToList());
                    if (matchPercentage >= 50)
                    {
                        if (cu.GroupId.HasValue)
                        {
                            if (!cur.GroupId.HasValue || cur.GroupId != cu.GroupId)
                            {
                                Group grp = _repGroup.Get(filter: f => f.GroupId == cu.GroupId).FirstOrDefault();
                                if (!gsfu.suggestedGroups.Any(x => x.GroupCode == grp.GroupCode))
                                {
                                    gsfu.suggestedGroups.Add(new GroupSummary()
                                    {
                                        GroupName      = grp.GroupName,
                                        GroupCode      = grp.GroupCode,
                                        Objective      = grp.Objective,
                                        activeTimeZone = grp.TimeZone
                                    });
                                }
                            }
                        }
                    }
                }
            }
            gsfu.AllGroups = new List <GroupSummary>();
            foreach (var grp in course.Groups)
            {
                if (!cur.GroupId.HasValue || cur.GroupId != grp.GroupId)
                {
                    gsfu.AllGroups.Add(new GroupSummary()
                    {
                        GroupCode      = grp.GroupCode,
                        GroupName      = grp.GroupName,
                        Objective      = grp.Objective,
                        activeTimeZone = grp.TimeZone
                    });
                }
            }
            return(gsfu);
        }