Exemple #1
0
        public async Task <AzaanTimes> GetBroadcastTimes()
        {
            HttpClient c = new HttpClient();

            c.DefaultRequestHeaders.Accept.Clear();
            c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            c.DefaultRequestHeaders.Add("User-Agent", "AzaanService 2.0");
            string url    = this.url;
            Stream result = await c.GetStreamAsync(url);

            JsonDocument jd = JsonDocument.Parse(result);
            AzaanTimes   r  = new AzaanTimes();

            //foreach (JsonProperty jsonElement in jd.RootElement.GetProperty("data").EnumerateObject().First().Value)
            JsonElement jsonElement = jd.RootElement.GetProperty("data").EnumerateObject().FirstOrDefault().Value;
            string      dateFor     = $"{DateTime.Today.Year}-{DateTime.Today.Month}-{DateTime.Today.Day}";

            foreach (JsonProperty jsonProperty in jsonElement.EnumerateObject())
            {
                this.logger.LogInformation($"{jsonProperty.Name}: {jsonProperty.Value}");
                string propertyName = jsonProperty.Name.ToLower();
                string val          = jsonProperty.Value.GetString();

                switch (propertyName)
                {
                case "date_for":
                    dateFor = val;
                    break;

                case "sunrise":     //fajr
                    r.Fajr = AzaanTimeConverter.CustomParse(dateFor, val);
                    break;

                case "dhuhr":
                    r.Dhuhr = AzaanTimeConverter.CustomParse(dateFor, val);
                    break;

                case "asr":
                    r.Asr = AzaanTimeConverter.CustomParse(dateFor, val);
                    break;

                case "maghrib":
                    r.Magrib = AzaanTimeConverter.CustomParse(dateFor, val);
                    break;

                case "isha":
                    r.Isha = AzaanTimeConverter.CustomParse(dateFor, val);
                    break;

                case "shurooq":
                    //r.Shurooq = AzaanTimeConverter.CustomParse(dateFor, val);
                    break;
                }
            }

            if (r.IsFilled())
            {
                return(r);
            }

            this.logger.LogWarning($"Something's wrong: {jd.RootElement.ToString()}");
            this.logger.LogTrace(r.ToString());

            return(r);
        }
        private async Task <AzaanTimes> GetBroadcastTimes()
        {
            HttpClient c = new HttpClient();

            c.DefaultRequestHeaders.Accept.Clear();
            c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            c.DefaultRequestHeaders.Add("User-Agent", "AzaanService 2.0");
            string        url    = $"{this.configuration["azaan:apitarget"]}{this.configuration["azaan:apikey"]}";
            Task <Stream> result = c.GetStreamAsync(url);
            JsonDocument  jd     = JsonDocument.Parse(await result);
            AzaanTimes    r      = new AzaanTimes();

            foreach (JsonElement jsonElement in jd.RootElement.GetProperty("items").EnumerateArray())
            {
                string dateFor = $"{DateTime.Today.Year}-{DateTime.Today.Month}-{DateTime.Today.Day}";
                foreach (JsonProperty jsonProperty in jsonElement.EnumerateObject())
                {
                    this.logger.LogInformation($"{jsonProperty.Name}: {jsonProperty.Value}");
                    string propertyName = jsonProperty.Name;
                    string val          = jsonProperty.Value.GetString();

                    switch (propertyName)
                    {
                    case "date_for":
                        dateFor = val;
                        break;

                    case "fajr":
                        r.Fajr = AzaanTimeConverter.CustomParse(dateFor, val);
                        break;

                    case "dhuhr":
                        r.Dhuhr = AzaanTimeConverter.CustomParse(dateFor, val);
                        break;

                    case "asr":
                        r.Asr = AzaanTimeConverter.CustomParse(dateFor, val);
                        break;

                    case "maghrib":
                        r.Magrib = AzaanTimeConverter.CustomParse(dateFor, val);
                        break;

                    case "isha":
                        r.Isha = AzaanTimeConverter.CustomParse(dateFor, val);
                        break;

                    case "shurooq":
                        r.Shurooq = AzaanTimeConverter.CustomParse(dateFor, val);
                        break;
                    }
                }
            }

            if (!r.IsFilled())
            {
                throw new InvalidOperationException($"Something's wrong: {jd.ToString()}");
            }

            return(r);
        }