public JsonResult SetMark(long userId,
                                  UserLanguages userLanguages,
                                  KnowledgeMark mark,
                                  TrainerItem item,
                                  RepetitionType repetitionType = RepetitionType.All)
        {
            var itemDataType = (KnowledgeDataType)(item != null ? item.DataType : int.MinValue);

            if (IsInvalid(userId, userLanguages) || EnumValidator.IsInvalid(mark) || item == null ||
                IdValidator.IsInvalid(item.DataId) || EnumValidator.IsInvalid(itemDataType) ||
                EnumValidator.IsInvalid(repetitionType))
            {
                //TODO: писать сообщение
                return(JsonResultHelper.Error());
            }

            IUserRepetitionIntervalQuery userRepetitionIntervalQuery = CreateUserRepetitionIntervalQuery(userId,
                                                                                                         repetitionType);

            var repetitionInterval = new UserRepetitionIntervalItem
            {
                DataId = item.DataId, DataType = itemDataType, SourceType = KnowledgeSourceType
            };

            var trainerHelper = new TrainerHelper(userRepetitionIntervalQuery, userLanguages);

            return(trainerHelper.SetMark(Request, mark, repetitionInterval));
        }
Esempio n. 2
0
        protected ActionResult GetIndex(long userId,
                                        UserLanguages userLanguages,
                                        long groupId,
                                        Action <TrainerModel> modelSetter)
        {
            if (WebSettingsConfig.Instance.IsSectionForbidden(SectionId))
            {
                return(RedirectToAction("Index", RouteConfig.MAIN_CONTROLLER_NAME));
            }

            if (IdValidator.IsInvalid(userId) || UserLanguages.IsInvalid(userLanguages) ||
                IdValidator.IsInvalid(groupId))
            {
                return(RedirectToParentPage());
            }

            IUserRepetitionIntervalQuery userRepetitionIntervalQuery = CreateUserRepetitionIntervalQuery(userId, groupId);

            var          trainerHelper = new TrainerHelper(userRepetitionIntervalQuery, userLanguages);
            TrainerModel model         = trainerHelper.GetTrainerModel(Request);

            modelSetter(model);
            if (EnumerableValidator.IsNullOrEmpty(model.Items))
            {
                return(RedirectToParentPage());
            }

            ViewData[OurHtmlHelper.ViewDataFlags.SKIP_POPUP_PANEL] = true;
            return(View("../Trainer/Index", model));
        }
        private List <TrainerItem> GetOverdueItems(long userId, UserLanguages userLanguages)
        {
            IUserRepetitionIntervalQuery userRepetitionIntervalQuery = CreateUserRepetitionIntervalQuery(userId,
                                                                                                         RepetitionType.
                                                                                                         Overdue);
            var                trainerHelper = new TrainerHelper(userRepetitionIntervalQuery, userLanguages);
            TrainerModel       model         = trainerHelper.GetTrainerModel(Request);
            List <TrainerItem> items         = model.Items;

            return(items);
        }
        public ActionResult Index(long userId, UserLanguages userLanguages)
        {
            if (WebSettingsConfig.Instance.IsSectionForbidden(SectionId.MyKnowledge))
            {
                return(RedirectToAction("Index", RouteConfig.MAIN_CONTROLLER_NAME));
            }

            if (IsInvalid(userId, userLanguages))
            {
                return(RedirectToKnowledgeWall());
            }

            IUserRepetitionIntervalQuery userRepetitionIntervalQuery = CreateUserRepetitionIntervalQuery(userId,
                                                                                                         RepetitionType.
                                                                                                         All);

            var          trainerHelper = new TrainerHelper(userRepetitionIntervalQuery, userLanguages);
            TrainerModel model         = trainerHelper.GetTrainerModel(Request);

            var pageRequiredData = new PageRequiredData(SectionId.MyKnowledge);

            pageRequiredData.Title       = WebSettingsConfig.Instance.GetTemplateText(pageRequiredData.SectionId, PageId.Cards, TemplateId.Title, PageName);
            pageRequiredData.Keywords    = WebSettingsConfig.Instance.GetTemplateText(pageRequiredData.SectionId, PageId.Cards, TemplateId.Keywords, PageName);
            pageRequiredData.Description = WebSettingsConfig.Instance.GetTemplateText(pageRequiredData.SectionId, PageId.Cards, TemplateId.Description, PageName);
            model.PageRequiredData       = pageRequiredData;
            model.SetMarkUrl             = Url.Action("SetMark", ControllerName, null, Request.Url.Scheme);
            model.BreadcrumbsItems       = new List <BreadcrumbItem> {
                new BreadcrumbItem
                {
                    Title = "Стена знаний", Action = "Index", ControllerName = RouteConfig.USER_KNOWLEDGE_CONTROLLER
                },
                new BreadcrumbItem {
                    IsActive = true, Title = PageName
                }
            };
            if (EnumerableValidator.IsNullOrEmpty(model.Items))
            {
                return(RedirectToKnowledgeWall());
            }

            ViewData[OurHtmlHelper.ViewDataFlags.SKIP_POPUP_PANEL] = true;
            return(View("../Trainer/Index", model));
        }
Esempio n. 5
0
 public TrainerHelper(IUserRepetitionIntervalQuery userRepetitionIntervalQuery, UserLanguages userLanguages)
 {
     _userLanguages = userLanguages;
     _userRepetitionIntervalQuery = userRepetitionIntervalQuery;
 }