Example #1
0
        public async Task <ExerciseHistoryDto> AddExerciseHistoryAsync(int exerciseId, int userId)
        {
            Exercise exercise = await exerciseRepository.GetByIdAsync(exerciseId);

            if (exercise?.TrainingTemplate.CreatorId != userId)
            {
                return(null);
            }

            ActiveTraining activeTraining = exercise.TrainingTemplate.Creator.ActiveTraining;

            if (activeTraining is null || !exercise.TrainingTemplate.Equals(activeTraining.TrainingTemplate))
            {
                return(null);
            }

            ExerciseHistory exerciseHistory = mapper.Map <Exercise, ExerciseHistory>(exercise);

            exerciseHistory.EndDate           = DateTime.Now.ToUniversalTime();
            exerciseHistory.TrainingHistoryId = activeTraining.TrainingHistory.Id;
            exerciseHistory.Properties        =
                exercise.Properties.Select(p => mapper.Map <ExerciseProperty, ExercisePropertyHistory>(p)).ToList();


            exerciseHistory = await exerciseHistoryRepository.AddAsync(exerciseHistory);

            await exerciseHistoryRepository.SaveChangesAsync();

            return(mapper.Map <ExerciseHistory, ExerciseHistoryDto>(exerciseHistory));
        }
        public async Task <ActiveTrainingDto> StartTrainingAsync(int trainingTemplateId, int userId)
        {
            TrainingTemplate trainingTemplate = await trainingTemplateRepository.GetByIdAsync(trainingTemplateId);

            if (
                trainingTemplate?.CreatorId != userId ||
                trainingTemplate.Exercises.Count == 0 ||
                trainingTemplate.Creator.ActiveTraining is not null)
            {
                return(null);
            }

            TrainingHistoryDto trainingHistoryDto =
                await trainingHistoryService.AddTrainingHistoryAsync(trainingTemplateId, userId);

            TrainingHistory trainingHistory = await trainingHistoryRepository.GetByIdAsync(trainingHistoryDto.Id);

            ActiveTraining activeTraining = new ActiveTraining()
            {
                UserId             = trainingHistory.UserId,
                TrainingHistoryId  = trainingHistory.Id,
                TrainingTemplateId = trainingTemplate.Id
            };

            activeTraining = await activeTrainingRepository.AddAsync(activeTraining);

            await activeTrainingRepository.SaveChangesAsync();

            return(mapper.Map <ActiveTraining, ActiveTrainingDto>(activeTraining));
        }
        public async Task <ExerciseDto> PeformExerciseAsync(int userId)
        {
            ExerciseDto exerciseDto = await GetExerciseAsync(userId);

            if (exerciseDto is null)
            {
                return(null);
            }

            ActiveTraining activeTraining = (await userRepository.GetByIdAsync(userId)).ActiveTraining;

            activeTraining.ExerciseDonePosition++;

            await activeTrainingRepository.UpdateAsync(activeTraining);

            ExerciseHistoryDto exerciseHistoryDto =
                await exerciseHistoryService.AddExerciseHistoryAsync(exerciseDto.Id, userId);

            if (exerciseHistoryDto is null)
            {
                return(null);
            }

            return(exerciseDto);
        }
Example #4
0
    public void SetResult(ActiveTraining activeTraining, int gainedXP, TrainingGameResultFeedbackData data)
    {
        //skillNameField.text = activeTraining.Training.Name;
        //skillSpriteImage.sprite = activeTraining.Training.Visual;
        //xpAmountField.text = gainedXP.ToString();
        feedbackData = data;
        GameObject feedbackDisplay = Instantiate(activeTraining.Training.FeedbackController.gameObject, feedbackContainer);

        feedbackController = feedbackDisplay.GetComponent <TrainingGameResultFeedback>();
        feedbackController.Setup(data);
    }
        public async Task <ActiveTrainingDto> GetActiveTrainingAsync(int userId)
        {
            ActiveTraining activeTraining = (await userRepository.GetByIdAsync(userId)).ActiveTraining;

            if (activeTraining is null)
            {
                return(null);
            }

            return(mapper.Map <ActiveTraining, ActiveTrainingDto>(activeTraining));
        }
 public override void Setup(ActiveTraining training)
 {
     activeTraining  = training;
     trainingRunTime = 0;
     itemsCorrect    = 0;
     itemsLate       = 0;
     itemsEarly      = 0;
     doughBowlButton.onClick.AddListener(TryAddItem);
     foreach (TapReactionItem item in reactionItems)
     {
         item.Disable();
     }
 }
        public async Task <bool> EndTrainingAsync(int userId)
        {
            ActiveTraining activeTrainging = (await userRepository.GetByIdAsync(userId))?.ActiveTraining;

            if (activeTrainging is null)
            {
                return(false);
            }

            bool result = await activeTrainingRepository.DeleteAsync(activeTrainging);

            await activeTrainingRepository.SaveChangesAsync();

            return(result);
        }
        public async Task <ExerciseDto> GetExerciseAsync(int userId)
        {
            ActiveTraining activeTraining = (await userRepository.GetByIdAsync(userId))?.ActiveTraining;

            if (activeTraining is null)
            {
                return(null);
            }

            Exercise exercise =
                activeTraining.TrainingTemplate.Exercises
                .FirstOrDefault(e => e.Position == activeTraining.ExerciseDonePosition + 1);

            if (exercise is null)
            {
                return(null);
            }

            return(mapper.Map <Exercise, ExerciseDto>(exercise));
        }
Example #9
0
 public abstract void Setup(ActiveTraining training);
 public UnlockReturn HandleUnlock(BaseData newUnlock)
 {
     if (newUnlock is Skill)
     {
         Skill newSkill = newUnlock as Skill;
         ActiveSkillCategory activeSkillCategory = GetActiveSkillCategory(newSkill.SkillCategory);
         if (activeSkillCategory == null)
         {
             activeSkillCategory = new ActiveSkillCategory(newSkill.SkillCategory);
             ActiveSkillCategories.Add(activeSkillCategory);
         }
         ActiveSkill activeSkill = activeSkillCategory.GetActiveSkill(newSkill);
         if (activeSkill == null)
         {
             activeSkill = new ActiveSkill(newSkill);
             activeSkillCategory.ActiveSkills.Add(activeSkill);
             return(UnlockReturn.NewUnlock);
         }
         return(UnlockReturn.WasUnlocked);
     }
     if (newUnlock is SkillLevel)
     {
         SkillLevel          newSkillLevel       = newUnlock as SkillLevel;
         ActiveSkillCategory activeSkillCategory = GetActiveSkillCategory(newSkillLevel.Skill.SkillCategory);
         if (activeSkillCategory == null)
         {
             activeSkillCategory = new ActiveSkillCategory(newSkillLevel.Skill.SkillCategory);
             ActiveSkillCategories.Add(activeSkillCategory);
         }
         ActiveSkill activeSkill = activeSkillCategory.GetActiveSkill(newSkillLevel.Skill);
         if (activeSkill == null)
         {
             activeSkill = new ActiveSkill(newSkillLevel.Skill);
             activeSkillCategory.ActiveSkills.Add(activeSkill);
         }
         ActiveSkillLevel activeSkillLevel = activeSkill.GetActiveSkillLevel(newSkillLevel);
         if (activeSkillLevel == null)
         {
             activeSkillLevel = new ActiveSkillLevel(newSkillLevel);
             activeSkill.ActiveSkillLevels.Add(activeSkillLevel);
             return(UnlockReturn.NewUnlock);
         }
         return(UnlockReturn.WasUnlocked);
     }
     if (newUnlock is TrainingData)
     {
         TrainingData        newTraining         = newUnlock as TrainingData;
         ActiveSkillCategory activeSkillCategory = GetActiveSkillCategory(newTraining.TargetSkill.SkillCategory);
         if (activeSkillCategory == null)
         {
             activeSkillCategory = new ActiveSkillCategory(newTraining.TargetSkill.SkillCategory);
             ActiveSkillCategories.Add(activeSkillCategory);
         }
         ActiveSkill activeSkill = activeSkillCategory.GetActiveSkill(newTraining.TargetSkill);
         if (activeSkill == null)
         {
             activeSkill = new ActiveSkill(newTraining.TargetSkill);
             activeSkillCategory.ActiveSkills.Add(activeSkill);
         }
         ActiveTraining activeTraining = activeSkill.ActiveTraining;
         if (activeTraining == null)
         {
             activeTraining             = new ActiveTraining(newTraining);
             activeSkill.ActiveTraining = activeTraining;
             return(UnlockReturn.NewUnlock);
         }
         if (activeTraining.Data == null)
         {
             activeTraining.Data = newTraining;
             return(UnlockReturn.NewUnlock);
         }
         else
         {
             if (activeTraining.Training.XPGainTraining < newTraining.XPGainTraining)
             {
                 activeTraining.Data = newTraining;
                 return(UnlockReturn.NewUnlock);
             }
         }
         return(UnlockReturn.WasUnlocked);
     }
     throw new System.ArgumentException("Unlock not supported for " + newUnlock);
 }