public async Task <Cekilis> GetAsync() { CekilisSelector cekSelector = CekilisSelector.Build(1); using (var client = CloudantClient()) { var response = await client.PostAsync(_dbName + "/_find", new StringContent(JsonConvert.SerializeObject(cekSelector), Encoding.UTF8, "application/json")); if (response.IsSuccessStatusCode) { string cekilisJson = await response.Content.ReadAsStringAsync(); JToken ob = JObject.Parse(cekilisJson); JArray arr = (JArray)ob.SelectToken("docs"); Cekilis cekilis = null; if (arr != null && arr.Count > 0) { cekilis = new Cekilis() { tarih = (string)arr[0]["tarih"], tarih_view = (string)arr[0]["tarih_view"], numbers = (string)arr[0]["numbers"] }; return(cekilis); } } string msg = "Failure to GET. Status Code: " + response.StatusCode + ". Reason: " + response.ReasonPhrase; Console.WriteLine(msg); return(null); } }
private async Task SendPushToUsers() { Cekilis cekilis = await _cekilisService.GetAsync(); if (cekilis == null) { return; } List <User> userList = await _userService.GetPushCekilis(); if (userList != null) { List <PushNotificationCekilis> pushList = new List <PushNotificationCekilis>(); foreach (var user in userList) { PushNotificationCekilis push = PushNotificationCekilis.Build(cekilis.numbers, 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); } await Task.Delay(100); } } PushFinished(); }
public async Task <Cekilis> CreateAsync(Cekilis item) { using (var client = CloudantClient()) { var response = await client.PostAsync(_dbName, new StringContent(JsonConvert.SerializeObject(item), Encoding.UTF8, "application/json")); if (response.IsSuccessStatusCode) { var responseJsonString = await response.RequestMessage.Content.ReadAsStringAsync(); var responseJson = JsonConvert.DeserializeObject(responseJsonString) as Cekilis; return(new Cekilis() { tarih = responseJson.tarih , tarih_view = responseJson.tarih_view , numbers = responseJson.numbers }); } string msg = "Failure to POST. Status Code: " + response.StatusCode + ". Reason: " + response.ReasonPhrase; Console.WriteLine(msg); return(null); } }
public async Task <dynamic> GetDateFromMP() { using (var client = MilliPiyangoClient()) { var response = await client.GetAsync(urlTarihler + oyunTuru); if (response.IsSuccessStatusCode) { string result = response.Content.ReadAsStringAsync().Result; if (!string.IsNullOrWhiteSpace(result)) { JArray arr = JArray.Parse(result); if (arr != null && arr.Any()) { string tarih = (string)arr[0]["tarih"]; Cekilis cekilis = new Cekilis() { tarih = tarih }; return(cekilis.GetDateTime()); } } } string msg = "Failure to GET. Status Code: " + response.StatusCode + ". Reason: " + response.ReasonPhrase; Console.WriteLine(msg); return(JsonConvert.SerializeObject(new { msg = msg })); } }
private int GetWinCount(CouponDto coupon, Cekilis cekilis) { string[] couponNumbers = coupon.Numbers.Split('-'); string[] cekilisNumbers = cekilis.numbers.Split('-'); return(couponNumbers.Where(n => cekilisNumbers.Contains(n)).Count()); }
public async Task <dynamic> GetCekilisFromMP(DateTime dateInMP) { using (var client = MilliPiyangoClient()) { var response = await client.GetAsync(urlNumaralar + oyunTuru + "/" + dateInMP.ToString("yyyyMMdd") + ".json"); if (response.IsSuccessStatusCode) { string result = response.Content.ReadAsStringAsync().Result; if (!string.IsNullOrWhiteSpace(result)) { JToken jTo = JToken.Parse(result); JToken jTo2 = jTo.SelectToken("data"); if (jTo2 != null) { Cekilis cekilis = new Cekilis() { tarih = dateInMP.ToString("yyyyMMdd"), tarih_view = (string)jTo2.SelectToken("cekilisTarihi"), numbers = getNumbersFromMP((string)jTo2.SelectToken("rakamlarNumaraSirasi")) }; return(cekilis); } } } string msg = "Failure to GET. Status Code: " + response.StatusCode + ". Reason: " + response.ReasonPhrase; Console.WriteLine(msg); return(JsonConvert.SerializeObject(new { msg = msg })); } }
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(); }
private void InvokeYeniCekilisEvent(Cekilis cekilisInserted) { CekilisEventArgs args = new CekilisEventArgs() { numbers = cekilisInserted.numbers }; onYeniCekilisFinished(this, args); }
private CouponList SetWinCounts(CouponList items) { foreach (Coupon item in items.docs) { string itemDate = item.LotteryTime.Replace("/", ""); Cekilis cekilis = CekilisCache.cekilisList .Where(c => c.tarih.Equals(itemDate)) .FirstOrDefault(); if (cekilis != null) { string[] cekilisNumbers = cekilis.numbers.Split('-'); string[] couponNumbers = item.Numbers.Split('-'); item.WinCount = couponNumbers.Where(n => cekilisNumbers.Contains(n)).Count(); } } return(items); }
private async Task UpdateCekilis() { try { Cekilis cekilisDb = await GetCekilisFromDB(); if (cekilisDb == null) { return; } if (DateTime.UtcNow.GetTurkeyTime() - cekilisDb.GetDateTime() <= TimeSpan.FromDays(6)) { return; } DateTime dateInMP = await GetDateFromMP(); if (dateInMP - cekilisDb.GetDateTime() <= TimeSpan.FromDays(2)) { return; } Cekilis cekilisMP = await GetCekilisFromMP(dateInMP); Cekilis cekilisInserted = await InsertCekilisToDB(cekilisMP); CekilisCache.AddCekilis(cekilisMP); if (cekilisInserted != null && !string.IsNullOrWhiteSpace(cekilisInserted.numbers)) { InvokeYeniCekilisEvent(cekilisInserted); } } catch (Exception ex) { Console.WriteLine("CekilisJob exception" + ex.Message); } }
private async Task SendPushToTopic(string topic) { try { Cekilis cekilis = CekilisCache.cekilisList.Last(); if (cekilis == null) { return; } PushNotificationToTopic push = PushNotificationToTopic.Build(cekilis.numbers, cekilis.tarih_view, topic); bool pushResult = await _pushService.SendPush(push); if (!pushResult) { Console.WriteLine("CekilisPushJob.SendPushToTopic false."); } } catch (Exception ex) { Console.WriteLine("CekilisPushJob.SendPushToTopic hata. " + ex.StackTrace); } PushFinished(); }
public async Task <dynamic> Post([FromBody] Cekilis item) { return(await _cloudantService.CreateAsync(item)); }
private async Task UpdateUserWinCounts() { Cekilis cekilis = CekilisCache.cekilisList.Last(); if (cekilis == null) { return; } /* * List<User> userList = await _userService.GetPushCekilis(); * if (userList == null || !userList.Any()) * { * CouponUpdateFinished(); * return; * } */ List <CouponDto> couponList = await _couponService.GetWithLimitByTarih(cekilis.tarih, updateCouponCount); if (couponList == null || !couponList.Any()) { CouponUpdateFinished(); return; } foreach (CouponDto couponDto in couponList) { int winCount = GetWinCount(couponDto, cekilis); couponDto.WinCount = winCount; } CouponListDto couponListDto = new CouponListDto(); couponListDto.docs = couponList; await _couponService.UpdateBulkAsync(couponListDto); /* * foreach (var user in userList) * { * List<CouponDto> userCouponList = couponList.Where(c => c.User.Equals(user.user_id)).ToList(); * if (userCouponList == null || !userCouponList.Any()) * { * continue; * } * * foreach (CouponDto couponDto in userCouponList) * { * int winCount = GetWinCount(couponDto, cekilis); * couponDto.WinCount = winCount; * } * * CouponListDto couponListDto = new CouponListDto(); * couponListDto.docs = userCouponList; * await _couponService.UpdateBulkAsync(couponListDto); * * //if (maxWinCount >= 3) * //{ * // PushNotification push = PushNotificationCoupon.Build(maxWinCount, cekilis.tarih_view, user.token); * // await _pushService.SendPush(push); * //} * } */ }
private async Task <Cekilis> InsertCekilisToDB(Cekilis cekilisMP) { return(await _cloudantService.CreateAsync(cekilisMP)); }
public Task <dynamic> DeleteAsync(Cekilis item) { throw new NotImplementedException(); }
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(); }
public static void AddCekilis(Cekilis cekilis) { _cekilisList.Add(cekilis); _cekilisList.Sort((x, y) => x.GetDateTime().CompareTo(y.GetDateTime())); }