public override Task <LearnDto> CreateAsync(LearnCreateUpdateDto input)

        {
            input.Level       = 0;
            input.DateofLearn = DateTime.Now;
            input.DateReview  = DateTime.Now.AddHours(4000);

            return(base.CreateAsync(input));
        }
        public async Task <LearnDto> UpdateLevelLearningWord(Guid idword, bool b) //dung khi kiem tra review
        {
            var wordinput   = _repository.FirstOrDefault(x => x.WordId == idword && x.UserId == _currentUser.Id);
            var lessonlearn = _lessonrepository.FirstOrDefault(x => x.LessonId == wordinput.LessonId && x.UserId == _currentUser.Id);
            int wordnumber  = _lesson_rea_repository.FirstOrDefault(x => x.Id == lessonlearn.LessonId).wordnumber;


            if (wordinput != null)
            {
                LearnCreateUpdateDto input = new LearnCreateUpdateDto();
                //input = ObjectMapper.Map<Learn, LearnCreateUpdateDto>(wordinput);

                input.LessonId    = wordinput.LessonId;
                input.Note        = wordnumber.ToString();
                input.UserId      = wordinput.UserId;
                input.DateofLearn = wordinput.DateofLearn;
                input.DateReview  = wordinput.DateReview;
                input.WordId      = wordinput.WordId;

                if (b)
                {
                    if (wordinput.Level < 6)
                    {
                        input.Level          = wordinput.Level + 1;
                        input.DateReview     = DateTime.Now.AddHours(4 * input.Level);
                        lessonlearn.Progress = (int)((lessonlearn.Progress * 5 * wordnumber + 100) / (5 * wordnumber));
                        await _lessonrepository.UpdateAsync(lessonlearn);
                    }
                }
                else
                {
                    if (wordinput.Level > 1)
                    {
                        input.Level = wordinput.Level - 1;

                        lessonlearn.Progress = (int)((lessonlearn.Progress * 5 * wordnumber - 100) / (5 * wordnumber));
                        await _lessonrepository.UpdateAsync(lessonlearn);
                    }
                    input.DateReview = DateTime.Now.AddHours(4 * input.Level);
                }

                return(await base.UpdateAsync(wordinput.Id, input));
            }
            else
            {
                return(await base.UpdateAsync(new Guid(), new LearnCreateUpdateDto()));
            }
        }
Exemple #3
0
        public Task <LearnDto> UpdateLevel(Guid id, LearnCreateUpdateDto input, bool d)
        {
            if (d)
            {
                input.Level     += 1;
                input.DateReview = DateTime.Now.AddHours(4 * input.Level);
            }
            else
            {
                if (input.Level > 1)
                {
                    input.Level -= 1;
                }
                input.DateReview = DateTime.Now.AddHours(4 * input.Level);
            }
            //update tien do cua lesson
            var  word = _word_rea_repository.FirstOrDefault(x => x.Id == input.WordId);
            Guid lsid = word.LessonId;

            this.UpdateProgressLessontable(lsid);
            return(base.UpdateAsync(id, input));
        }