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));
        }
示例#2
0
 private void subItem(TrainerItem item)
 {
     this.controller.SendPostRequest(string.Format("api/item-sub/{0}", item.id), " ", (request) =>
     {
         this.controller.Reload();
     }, (request) =>
     {
     });
 }
        public JsonResult SetMark(long userId,
                                  GroupForUser group,
                                  UserLanguages userLanguages,
                                  KnowledgeMark mark,
                                  TrainerItem item)
        {
            long groupId = GetGroupId(group);

            return(SetMarkAndGetModel(userId, userLanguages, groupId, mark, item));
        }
        public JsonResult SetMark(long userId,
                                  UserLanguages userLanguages,
                                  string group,
                                  KnowledgeMark mark,
                                  TrainerItem item)
        {
            long representationId = GetRepresentationId(group);

            return(SetMarkAndGetModel(userId, userLanguages, representationId, mark, item));
        }
示例#5
0
        public TrainerModel GetTrainerModel(HttpRequestBase request)
        {
            var model = new TrainerModel(_userLanguages);
            List <UserRepetitionIntervalItem> repetitionIntervalItems =
                _userRepetitionIntervalQuery.GetRepetitionIntervalItems(_userLanguages.From.Id,
                                                                        _userLanguages.To.Id,
                                                                        MAX_COUNT_ITEMS_TO_GET);

            foreach (UserRepetitionIntervalItem repetitionItem in
                     repetitionIntervalItems ?? new List <UserRepetitionIntervalItem>(0))
            {
                var trainerItem = new TrainerItem();

                var userKnowledge = repetitionItem.Data as UserKnowledgeItem;
                if (userKnowledge != null)
                {
                    var dataType = userKnowledge.DataType;
                    //тренируемся на запоминание пользовательских данных
                    SpeakerDataType speakerType = KnowledgeHelper.GetSpeakerType(dataType);
                    var             parsedData  = userKnowledge.ParsedData as SourceWithTranslation;

                    trainerItem.NextTimeToShow        = KnowledgeHelper.ConvertDateTimeToJsTicks(repetitionItem.NextTimeToShow);
                    trainerItem.DataId                = repetitionItem.DataId;
                    trainerItem.DataType              = (int)repetitionItem.DataType;
                    trainerItem.HtmlSource            = OurHtmlHelper.GetSpeakerHtml(parsedData.Source, speakerType);
                    trainerItem.HtmlTranslation       = OurHtmlHelper.GetSpeakerHtml(parsedData.Translation, speakerType);
                    trainerItem.SourceLanguageId      = parsedData.Source.LanguageId;
                    trainerItem.TranslationLanguageId = parsedData.Translation.LanguageId;
                    trainerItem.ImageUrl              = parsedData.HasImage ? GetImageUrl(request, parsedData.Id, dataType) : null;
                }

                if (IdValidator.IsValid(trainerItem.DataId) && trainerItem.HtmlSource != null &&
                    trainerItem.HtmlTranslation != null)
                {
                    //данные такого типа, могут быть представлены
                    model.AddItem(trainerItem);
                }
            }
            return(model);
        }
示例#6
0
    private int addItem(int position, TrainerItem item, UnityAction function)
    {
        GameObject button = Instantiate(this.Item);

        this.itemPanels.Add(button);
        button.transform.SetParent(this.viewPort);
        RectTransform buttonRect = button.GetComponent <RectTransform>();

        buttonRect.anchoredPosition = new Vector2(0, position);
        if (string.IsNullOrEmpty(item.item.name))
        {
            button.transform.Find("Name").gameObject.GetComponent <Text>().text = item.item_name;
        }
        else
        {
            button.transform.Find("Name").gameObject.GetComponent <Text>().text = item.item.name;
        }
        button.transform.Find("Number").gameObject.GetComponent <Text>().text = item.number.ToString();
        button.transform.Find("IncSub").Find("Add").gameObject.GetComponent <Button>().onClick.AddListener(delegate { this.addItem(item); });
        button.transform.Find("IncSub").Find("Sub").gameObject.GetComponent <Button>().onClick.AddListener(delegate { this.subItem(item); });
        return(position - 50);
    }