private async Task SendCouponPushToUsers() { try { Cekilis cekilis = CekilisCache.cekilisList.Last(); if (cekilis == null) { return; } List <User> userList = await _userService.GetPushCekilis(); if (userList == null || !userList.Any()) { CouponPushFinished(); return; } foreach (User user in userList) { try { List <Coupon> couponList = await _couponsService.GetAllByUserNameAndTarih(user.user_id, cekilis.tarih); if (couponList == null || !couponList.Any()) { continue; } if (!couponList.Any(c => c.WinCount >= 3)) { continue; } int maxWinCount = couponList.Max(c => c.WinCount); PushNotification push = PushNotificationCoupon.Build(maxWinCount, cekilis.tarih_view, user.token); bool pushResult = await _pushService.SendPush(push); if (!pushResult) { user.push_cekilis = "F"; user.push_win = "F"; await _userService.UpdateAsync(user); } } catch (Exception ex) { Console.WriteLine("CouponPushJob.SendCouponPushToUsers, user:"******" " + ex.StackTrace); } await Task.Delay(100); } } catch (Exception ex) { Console.WriteLine("CouponPushJob.SendCouponPushToUsers hata. " + ex.StackTrace); } CouponPushFinished(); }
public static PushNotificationCoupon Build(int maxViewCount, string tarihView, string to) { PushNotificationCoupon push = new PushNotificationCoupon(); push.data = new Data(); push.data.score = maxViewCount.ToString(); push.data.time = tarihView; push.notification = new Notification(); push.notification.title = "Super Loto'da kazandiniz!"; push.notification.body = "Tebrikler! " + tarihView + " tarihli cekilisten " + maxViewCount + " tutturdunuz!"; push.to = to; return(push); }
private async Task SendPushToWinners() { try { Cekilis cekilis = CekilisCache.cekilisList.Last(); if (cekilis == null) { return; } List <Coupon> winnerCouponList = await _couponsService.GetAllByWinCountAndTarih(cekilis.tarih); if (winnerCouponList == null || !winnerCouponList.Any()) { CouponPushFinished(); return; } Dictionary <string, int> userDict = new Dictionary <string, int>(); foreach (Coupon item in winnerCouponList) { if (!userDict.ContainsKey(item.User) || userDict[item.User] < item.WinCount) { userDict[item.User] = item.WinCount; } } List <User> winnerUserList = await _userService.GetAllByUserIds(userDict.Keys.ToList()); if (winnerUserList == null || !winnerUserList.Any()) { CouponPushFinished(); return; } var winnerUsersToPushList = winnerUserList.Where(u => u.push_cekilis.Equals("T")).ToList(); if (winnerUsersToPushList == null || !winnerUsersToPushList.Any()) { CouponPushFinished(); return; } foreach (var user in winnerUsersToPushList) { try { PushNotification push = PushNotificationCoupon.Build(userDict[user.user_id], cekilis.tarih_view, user.token); bool pushResult = await _pushService.SendPush(push); if (!pushResult) { user.push_cekilis = "F"; user.push_win = "F"; await _userService.UpdateAsync(user); Console.WriteLine("CouponPushJob winner: " + user.user_id + " won:" + userDict[user.user_id]); } } catch (Exception ex) { Console.WriteLine("CouponPushJob.SendPushToWinners, user:"******" " + ex.StackTrace); } await Task.Delay(300); } } catch (Exception ex) { Console.WriteLine("CouponPushJob.SendPushToWinners hata. " + ex.StackTrace); } CouponPushFinished(); }