Exemplo n.º 1
0
 public async Task <Advice[]> GetAllByCategoryForUser(Dbo.Category category, User user)
 {
     try
     {
         var categoryAdvices = await(from advice in _context.Advices.AsNoTracking()
                                     where advice.CategoryId == category.Id
                                     select advice).ToArrayAsync();
         return(_mapper.Map <Advice[]>(categoryAdvices));
     }
     catch (Exception ex)
     {
         _logger.LogError("Cannot get this entry", ex);
         return(null);
     }
 }
Exemplo n.º 2
0
 public async Task <Advice> GetByCategoryForUser(Dbo.Category category, User user)
 {
     try
     {
         var categoryAdvices = await(from advice in _context.Advices.AsNoTracking()
                                     where advice.CategoryId == category.Id
                                     select advice).ToArrayAsync();
         Random random = new Random();
         int    selectedAdviceIndex = random.Next(0, categoryAdvices.Length);
         var    selectedAdvice      = categoryAdvices[selectedAdviceIndex];
         return(_mapper.Map <Advice>(selectedAdvice));
     }
     catch (Exception ex)
     {
         _logger.LogError("Cannot get this entry", ex);
         return(null);
     }
 }
Exemplo n.º 3
0
 public static Dbo.Category.CategoryAsEnum AsEnum(Dbo.Category category)
 {
     return(category.Name.AsCategoryEnum());
 }
Exemplo n.º 4
0
        public static async Task <SkinInformations> Handle(User user, Skin skin, IAvatarRepository avatarRepository, ICategoryRepository categoryRepository, IQuestTypeRepository questTypeRepository, IQuestRepository questRepository)
        {
            Skin.SkinNameAsEnum skinName         = skin.Name.AsSkinEnum();
            SkinInformations    skinInformations = null;
            IEnumerable <Quest> quests           = null;

            switch (skinName)
            {
            case Skin.SkinNameAsEnum.man_default:
            case Skin.SkinNameAsEnum.woman_default:
                skinInformations = new SkinInformations("default skin", true);
                break;

            case Skin.SkinNameAsEnum.man_pyjama:
            case Skin.SkinNameAsEnum.woman_pyjama:
                Dbo.Category sleepCategory = await categoryRepository.GetByName(Dbo.Category.CategoryAsEnum.Sleep.ToString());

                quests = (await questRepository.Get(user, sleepCategory.Id, questTypeRepository, null))
                         .Where(quest => {
                    QuestState questState = QuestHandlers.QuestHandlers.Create(quest, user, questTypeRepository).GetState();

                    return(questState == QuestState.Claimed || questState == QuestState.Finished);
                });
                int numberOfSleepQuestCompleted = quests.Count();
                int numberOfSleepQuestGoal      = 5;
                skinInformations = new SkinInformations($"do at least {numberOfSleepQuestGoal} sleep quests (current: {numberOfSleepQuestCompleted})", numberOfSleepQuestCompleted >= numberOfSleepQuestGoal);
                break;

            case Skin.SkinNameAsEnum.man_sportive:
            case Skin.SkinNameAsEnum.woman_sportive:
                Dbo.Category PACategory = await categoryRepository.GetByName(Dbo.Category.CategoryAsEnum.PhysicalActivity.ToString());

                quests = (await questRepository.Get(user, PACategory.Id, questTypeRepository, null))
                         .Where(quest => {
                    QuestState questState = QuestHandlers.QuestHandlers.Create(quest, user, questTypeRepository).GetState();

                    return(questState == QuestState.Claimed || questState == QuestState.Finished);
                });
                int numberOfPAQuestCompleted = quests.Count();
                int numberOfPAQuestGoal      = 5;
                skinInformations = new SkinInformations($"do at least {numberOfPAQuestGoal} sleep quests (current: {numberOfPAQuestCompleted})", numberOfPAQuestCompleted >= numberOfPAQuestGoal);
                break;

            case Skin.SkinNameAsEnum.man_fancy:
            case Skin.SkinNameAsEnum.woman_fancy:
            case Skin.SkinNameAsEnum.man_funny:
            case Skin.SkinNameAsEnum.woman_funny:
            case Skin.SkinNameAsEnum.man_cook:
            case Skin.SkinNameAsEnum.woman_cook:
                Avatar avatar = await avatarRepository.GetByUser(user);

                skinInformations = new SkinInformations($"reach level {skin.LevelMin} (current: {avatar.Level})", avatar.Level >= skin.LevelMin);
                break;

            default:
            case Skin.SkinNameAsEnum.unknown:
                skinInformations = new SkinInformations("???", false);
                break;
            }
            return(skinInformations);
        }