public AddQuestRequestHandler(IUserRepository userRepository, IQuestRepository questRepository, IQuestTypeRepository questTypeRepository, ICategoryRepository categoryRepository)
 {
     _userRepository      = userRepository;
     _questRepository     = questRepository;
     _questTypeRepository = questTypeRepository;
     _categoryRepository  = categoryRepository;
 }
 public GetQuestRequestHandler(IUserRepository userRepository, IQuestRepository questRepository, IQuestTypeRepository questTypeRepository, QuestState?questState)
 {
     _userRepository      = userRepository;
     _questRepository     = questRepository;
     _questTypeRepository = questTypeRepository;
     _questState          = questState;
 }
 public ClaimQuestsRequestHandler(IUserRepository userRepository, IQuestRepository questRepository, IQuestTypeRepository questTypeRepository, IAvatarRepository avatarRepository)
 {
     _userRepository      = userRepository;
     _questRepository     = questRepository;
     _questTypeRepository = questTypeRepository;
     _avatarRepository    = avatarRepository;
 }
Exemple #4
0
        public static QuestHandler Create(Quest quest, User user, IQuestTypeRepository questTypeRepository)
        {
            QuestHandler questHandler = null;

            switch (questTypeRepository.GetAsEmum(quest.TypeId).GetAwaiter().GetResult())
            {
            case QuestTypeAsEmum.DailySleepGoal:
                questHandler = new DailySleepQuestHandler(user);
                break;

            case QuestTypeAsEmum.CaloriesGoal:
                questHandler = new CaloriesGoalQuestHandler();
                break;

            case QuestTypeAsEmum.DailyCaloriesLimit:
                questHandler = new DailyCaloriesLimitQuestHandler();
                break;

            case QuestTypeAsEmum.DailyPhysicalActivity:
                questHandler = new DailyPhysicalActivityQuestHandler();
                break;

            case QuestTypeAsEmum.WeeklyPhysicalActivity:
                questHandler = new WeeklyPhysicalActivityQuestHandler();
                break;

            case QuestTypeAsEmum.Undefined:
            default:
                break;
            }
            questHandler.Quest = quest;
            return(questHandler);
        }
Exemple #5
0
        public static async Task <Quest> Create(
            AddQuestDTORequest addQuestRequest,
            User user,
            IQuestTypeRepository questTypeRepository,
            ICategoryRepository categoryRepository)
        {
            QuestTypeAsEmum questTypeAsEnum = await questTypeRepository.GetAsEmum(addQuestRequest.TypeId);

            if (questTypeAsEnum == QuestTypeAsEmum.Undefined)
            {
                return(null);
            }

            CategoryAsEnum categoryAsEnum = await categoryRepository.GetAsEnum(addQuestRequest.CategoryId);

            if (categoryAsEnum == CategoryAsEnum.Undefined)
            {
                return(null);
            }

            Quest quest = new Quest()
            {
                TypeId         = addQuestRequest.TypeId,
                CategoryId     = addQuestRequest.CategoryId,
                UserId         = user.Id,
                XpValue        = 10,
                CreationDate   = DateTime.Now,
                ExpirationDate = DateTime.Now.AddDays(1)
            };

            return(Initialize(quest, user, questTypeAsEnum, addQuestRequest));
        }
Exemple #6
0
 public AddFoodEntryRequestHandler(IFoodEntryRepository foodEntryRepository, IOFFDataRepository offDataRepository, IQuestRepository questRepository, IQuestTypeRepository questTypeRepository, IUserRepository userRepository)
 {
     _foodEntryRepository = foodEntryRepository;
     _offDataRepository   = offDataRepository;
     _questRepository     = questRepository;
     _questTypeRepository = questTypeRepository;
     _userRepository      = userRepository;
 }
Exemple #7
0
 public QuestsController(IQuestRepository questRepository, IUserRepository userRepository, IQuestTypeRepository questTypeRepository, ICategoryRepository categoryRepository, IAvatarRepository avatarRepository)
 {
     _questRepository     = questRepository;
     _userRepository      = userRepository;
     _questTypeRepository = questTypeRepository;
     _categoryRepository  = categoryRepository;
     _avatarRepository    = avatarRepository;
 }
Exemple #8
0
 public PhysicalActivitiesController(IUserRepository userRepository, IPhysicalActivitiesRepository physicalActivitiesRepository, IPhysicalActivitiesEntryRepository physicalActivitiesEntryRepository, IQuestTypeRepository questTypeRepository, IQuestRepository questRepository)
 {
     _userRepository = userRepository;
     _physicalActivitiesRepository      = physicalActivitiesRepository;
     _physicalActivitiesEntryRepository = physicalActivitiesEntryRepository;
     _questTypeRepository = questTypeRepository;
     _questRepository     = questRepository;
 }
Exemple #9
0
 public AddPAEntryRequestHandler(IUserRepository userRepository, IPhysicalActivitiesRepository physicalActivitiesRepository, IPhysicalActivitiesEntryRepository physicalActivitiesEntryRepository, IQuestTypeRepository questTypeRepository, IQuestRepository questRepository)
 {
     _userRepository = userRepository;
     _physicalActivitiesRepository      = physicalActivitiesRepository;
     _physicalActivitiesEntryRepository = physicalActivitiesEntryRepository;
     _questTypeRepository = questTypeRepository;
     _questRepository     = questRepository;
 }
 public GetQuestByCategoryRequestHandler(IUserRepository userRepository, IQuestRepository questRepository, ICategoryRepository categoryRepository, IQuestTypeRepository questTypeRepository, string categoryName)
 {
     _userRepository      = userRepository;
     _questRepository     = questRepository;
     _categoryRepository  = categoryRepository;
     _questTypeRepository = questTypeRepository;
     _categoryName        = categoryName;
 }
Exemple #11
0
 public GetAvailableSkinsRequestHandler(IUserRepository userRepository, IAvatarRepository avatarRepository, ISkinRepository skinRepository, ICategoryRepository categoryRepository, IQuestRepository questRepository, IQuestTypeRepository questTypeRepository)
 {
     _userRepository      = userRepository;
     _avatarRepository    = avatarRepository;
     _skinRepository      = skinRepository;
     _categoryRepository  = categoryRepository;
     _questRepository     = questRepository;
     _questTypeRepository = questTypeRepository;
 }
Exemple #12
0
 public AvatarController(ILogger <UsersController> logger, levelupContext context, IAvatarRepository avatarRepository, IUserRepository userRepository, ISkinRepository skinRepository, ICategoryRepository categoryQuest, IQuestRepository questRepository, IQuestTypeRepository questTypeRepository)
 {
     _logger              = logger;
     _context             = context;
     _avatarRepository    = avatarRepository;
     _userRepository      = userRepository;
     _skinRepository      = skinRepository;
     _categoryQuest       = categoryQuest;
     _questRepository     = questRepository;
     _questTypeRepository = questTypeRepository;
 }
Exemple #13
0
        public async Task <IEnumerable <Quest> > Get(User user, IQuestTypeRepository questTypeRepository, QuestState?questState)
        {
            var getAll = await base.Get();

            return(getAll
                   .Where(quest => {
                var questHandler = QuestHandlers.QuestHandlers.Create(quest, user, questTypeRepository);
                return quest.UserId == user.Id &&
                questHandler != null && (!questState.HasValue || questState.Value == questHandler.GetState());
            }));
        }
 public GetQuestTypesRequestHandler(IQuestTypeRepository questTypeRepository)
 {
     _questTypeRepository = questTypeRepository;
 }
 public UpdateQuestRequestHandler(IUserRepository userRepository, IQuestRepository questRepository, IQuestTypeRepository questTypeRepository) : base()
 {
     _userRepository      = userRepository;
     _questRepository     = questRepository;
     _questTypeRepository = questTypeRepository;
 }
Exemple #16
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);
        }