예제 #1
0
        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 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);
            }
        }