Example #1
0
        public ActionResult EditGroupInfo(int id, string notes)
        {
            GroupInfoService.EnableTracking();
            var groupInfo = GroupInfoService.GetByPK(id);

            groupInfo.Notes = StringUtils.SafeSubstring(notes, 500);
            GroupInfoService.SubmitChanges();
            return(OkJson());
        }
Example #2
0
        private GroupInfo GetGroupInfo(int groupInfoId, out List <int> userIds)
        {
            GroupInfoService.LoadWith(c => c.Load(x => x.GroupTests).And <GroupTest>(t => t.Test));
            var groupInfo = GroupInfoService.GetByPK(groupInfoId);

            userIds = UserService.GetAll(x => x.Student.StudentInGroups.Any(y => y.Group_ID == groupInfo.Group_ID))
                      .Select(x => x.UserID).ToList();
            return(groupInfo);
        }
Example #3
0
        public ActionResult GroupInfoComplete(int groupInfoId)
        {
            GroupInfoService.EnableTracking();
            var groupInfo = GroupInfoService.GetByPK(groupInfoId);

            groupInfo.IsComplete = true;
            GroupInfoService.SubmitChanges();
            var user = UserService.FirstOrDefault(x => x.CompanyID == groupInfo.CompanyId);

            MailService.NewGroupTest(user);
            return(OkJson());
        }
Example #4
0
        public ActionResult SendGroupTestInfo(int groupInfoId, bool forManager)
        {
            GroupInfoService.LoadWith(c => c.Load(x => x.GroupTests).And <GroupTest>(x => x.Test));
            var groupInfo    = GroupInfoService.GetByPK(groupInfoId);
            var managerEmail = forManager ? UserService.FirstOrDefault(x =>
                                                                       x.CompanyID == groupInfo.CompanyId).Email : null;
            var studentIds =
                StudentInGroupService.GetAll(x => x.Group_ID == groupInfo.Group_ID).Select(x => x.Student_ID).ToList();
            var users = UserService.GetAll(x => studentIds.Contains(x.Student_ID.Value)).ToList();
            var tests = groupInfo.GroupTests.Select(x => Url.TestLink(x.Test).AbsoluteHref()).ToList();

            MailService.GroupTestInfo(users, tests, managerEmail);
            return(OkJson());
        }
Example #5
0
        public ActionResult Prepare(GroupPrepareVM model)
        {
            GroupInfoService.EnableTracking();
            var  groupId   = model.GroupID;
            var  groupInfo = GroupInfoService.FirstOrDefault(x => x.Group_ID == groupId);
            User user      = null;

            if (groupInfo == null)
            {
                user = UserService.GetByEmail(model.Email);
                if (user == null)
                {
                    ModelState.AddModelError("", "Пользователь не существует");
                }
                else if (!user.IsCompany)
                {
                    ModelState.AddModelError("", "Пользователь не компания");
                }
            }
            var group = GroupService.GetByPK(groupId);

            if (group == null)
            {
                ModelState.AddModelError("", "Группа не существует");
            }
            else if (group.Course_TC != CourseTC.Test)
            {
                ModelState.AddModelError("", "Не группа тестирования");
            }
            if (!ModelState.IsValid)
            {
                return(ErrorJson());
            }
            RegisterStudentUsers(groupId);
            if (!ModelState.IsValid)
            {
                return(ErrorJson());
            }
            if (groupInfo == null)
            {
                groupInfo = new GroupInfo {
                    CompanyId = user.CompanyID.Value, Group_ID = groupId
                };
                GroupInfoService.InsertAndSubmit(groupInfo);
            }

            return(UrlJson(Url.Action <GroupTestController>(x => x.GroupInfo(groupInfo.Id))));
        }
Example #6
0
        public ActionResult List()
        {
            GroupInfoService.LoadWith(x => x.Group);
            var groupInfos = GroupInfoService.GetAll(x => x.CompanyId == User.CompanyID && x.IsComplete);

            if (User.InRole(Role.TestAdmin))
            {
                groupInfos = GroupInfoService.GetAll();
            }
            var groups = groupInfos.
                         OrderByDescending(x => x.Group.DateBeg).ToList();

            return(BaseViewWithModel(new GroupInfosView(), new GroupInfosVM {
                GroupInfos = groups
            }));
        }
Example #7
0
        public ActionResult GroupInfo(int groupInfoId)
        {
            var groupInfo = GroupInfoService.GetByPK(groupInfoId);
            var model     = new GroupInfoVM()
            {
                DenyAdd    = !User.InRole(Role.TestAdmin),
                GetListUrl = Url.Action <GroupTestController>(c => c.GetGroupTests(groupInfoId, null)),
                EditUrl    = Url.Action <GroupTestController>(c => c.EditGroupTest(groupInfoId, null)),
                Caption    = "Тесты группы " + groupInfo.Group_ID
            };

            if (User.InRole(Role.TestAdmin))
            {
                model.DeleteUrl = Url.Action <GroupTestController>(c => c.DeleteGroupTest(null));
            }
            AddColumns <GroupTest>(model, x => x.TestId);
            return(BaseView(new PagePart(PartialViewNames.AjaxList, model),
                            new PagePart(new GroupInfoView {
            }.Init(groupInfo, Url).Get().ToString())));
        }
Example #8
0
 private decimal GetGroupIdForInfo(int groupInfoId)
 {
     return(GroupInfoService.GetAll(x => x.Id == groupInfoId).Select(x => x.Group_ID).First());
 }