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); } } }
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); }
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); }
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); }