Пример #1
0
        public override async Task GetPrayerTimesByCityAndSchoolStream(RequestForPrayerTimesInCityAndSchool request, IServerStreamWriter <ResponseForPrayerTimesInCityAndSchool> responseStream, ServerCallContext context)
        {
            var client = httpClientFactory.CreateClient();

            for (int i = 0; i < 30; i++)
            {
                if (context.CancellationToken.IsCancellationRequested)
                {
                    logger.LogInformation("service request cancelled...");
                    break;
                }

                var prayerTimes = await GetPrayerTimesWithSchool(request, client);

                await responseStream.WriteAsync(new ResponseForPrayerTimesInCityAndSchool
                {
                    Asr       = prayerTimes.Results.Datetime[0].Times.Asr,
                    Dhuhr     = prayerTimes.Results.Datetime[0].Times.Dhuhr,
                    Fajr      = prayerTimes.Results.Datetime[0].Times.Fajr,
                    Isha      = prayerTimes.Results.Datetime[0].Times.Isha,
                    Maghrib   = prayerTimes.Results.Datetime[0].Times.Maghrib,
                    TimeStamp = Timestamp.FromDateTime(DateTime.UtcNow),
                    School    = request.School,
                    City      = request.City
                });

                await Task.Delay(1000);
            }
        }
Пример #2
0
        private static async Task <PrayerTimes> GetPrayerTimesWithSchool(RequestForPrayerTimesInCityAndSchool request, HttpClient client)
        {
            var response = await client.GetStringAsync($"https://api.pray.zone/v2/times/today.json?city={request.City}&school={request.School}");

            var prayerTimes = PrayerTimes.FromJson(response);

            return(prayerTimes);
        }
Пример #3
0
        public override async Task <ResponseForPrayerTimesInCityAndSchool> GetPrayerTimesByCityAndSchool(RequestForPrayerTimesInCityAndSchool request, ServerCallContext context)
        {
            var         client      = httpClientFactory.CreateClient();
            PrayerTimes prayerTimes = await GetPrayerTimesWithSchool(request, client);

            return(new ResponseForPrayerTimesInCityAndSchool
            {
                Asr = prayerTimes.Results.Datetime[0].Times.Asr,
                Dhuhr = prayerTimes.Results.Datetime[0].Times.Dhuhr,
                Fajr = prayerTimes.Results.Datetime[0].Times.Fajr,
                Isha = prayerTimes.Results.Datetime[0].Times.Isha,
                Maghrib = prayerTimes.Results.Datetime[0].Times.Maghrib,
                TimeStamp = Timestamp.FromDateTime(DateTime.UtcNow),
                City = request.City,
                School = request.School
            });
        }