Beispiel #1
0
        private async Task NotifyStreekLooseAsync(User user, StreakEnum streak, IEnumerable <Device> devices)
        {
            if (streak == StreakEnum.BALANCED_EAT || streak == StreakEnum.EAT)
            {
                var lang = await _userService.GetUserLanguageFromUserIdAsync(user.Id);

                var title = (lang == "EN") ? "Actual streak loose" : "Racha actual perdida";
                var body  = GetFirebaseMessageForStreakLoose(streak, lang);
                if (devices != null)
                {
                    await SendFirebaseNotificationAsync(title, body, devices);
                }
            }
        }
Beispiel #2
0
        private string GetFirebaseMessageForStreakLoose(StreakEnum streak, string lang)
        {
            var reason = "";

            switch (streak)
            {
            case StreakEnum.EAT:
                switch (lang)
                {
                case "EN":
                    reason = "You has lost your actual streak planning your food";
                    break;

                default:
                    reason = "Has perdido la racha actual planificando tu comida";
                    break;
                }
                break;

            case StreakEnum.BALANCED_EAT:
                switch (lang)
                {
                case "EN":
                    reason = "You has lost your actual streak planning your food balanced";
                    break;

                default:
                    reason = "Has perdido la racha actual planificando tu comida balanceada";
                    break;
                }

                break;

            default:
                break;
            }

            return(reason);
        }
Beispiel #3
0
        public async Task <UserStatistics> CutCurrentStreakAsync(UserStatistics statistic, StreakEnum streak, IEnumerable <Device> devices)
        {
            switch (streak)
            {
            case StreakEnum.EAT:
                statistic.EatCurrentStreak = 0;

                break;

            case StreakEnum.BALANCED_EAT:
                statistic.BalancedEatCurrentStreak = 0;
                break;

            default:
                break;
            }

            await _uow.UserStatisticsRepository.UpdateAsync(statistic, statistic.Id);

            await _uow.CommitAsync();

            await NotifyStreekLooseAsync(statistic.User, streak, devices);

            return(statistic);
        }
Beispiel #4
0
        public async Task <UserStatistics> IncrementCurrentStreakAsync(UserStatistics statistic, StreakEnum streak)
        {
            switch (streak)
            {
            case StreakEnum.EAT:
                statistic.TotalNonBalancedEatsPlanned++;
                statistic.EatCurrentStreak++;
                if (statistic.EatMaxStreak < statistic.EatCurrentStreak)
                {
                    statistic.EatMaxStreak = statistic.EatCurrentStreak;
                }
                break;

            case StreakEnum.BALANCED_EAT:
                statistic.TotalBalancedEatsPlanned++;
                statistic.BalancedEatCurrentStreak++;
                statistic.EatCurrentStreak++;
                if (statistic.BalancedEatMaxStreak < statistic.BalancedEatCurrentStreak)
                {
                    statistic.BalancedEatMaxStreak = statistic.BalancedEatCurrentStreak;
                }
                if (statistic.EatMaxStreak < statistic.EatCurrentStreak)
                {
                    statistic.EatMaxStreak = statistic.EatCurrentStreak;
                }
                break;

            default:
                break;
            }

            await _uow.UserStatisticsRepository.UpdateAsync(statistic, statistic.Id);

            await _uow.CommitAsync();

            return(statistic);
        }