public override async Task <ForecastResult> ForecastInfo(GetForecastForDateRequest request, ServerCallContext context)
        {
            var parsedDate = DateParserHelper.Parse(request.Date);

            var forecast = await ForecastFactory.CreateAsync(parsedDate);

            return(new ForecastResult
            {
                Date = forecast.date,
                TemperatureC = forecast.temperatureC,
                Summary = forecast.summary,
                CanYouPlayGolf = forecast.canYouPlayGolf
            });
        }
Example #2
0
        public async Task <WeatherForecast> GetForDate(string date)
        {
            var parsedDate = DateParserHelper.Parse(date);

            var forecast = await ForecastFactory.CreateAsync(parsedDate);

            return(new WeatherForecast
            {
                Date = forecast.date,
                TemperatureC = forecast.temperatureC,
                Summary = forecast.summary,
                CanYouPlayGolf = forecast.canYouPlayGolf
            });
        }
        public override async Task ForecastInfoBidirectionalStreaming(IAsyncStreamReader <GetForecastForDateRequest> requestStream, IServerStreamWriter <ForecastResult> responseStream, ServerCallContext context)
        {
            while (await requestStream.MoveNext())
            {
                var current = requestStream.Current;
                _logger.LogInformation($"Request for date: {current.Date}");

                var(date, summary, temperatureC, canYouPlayGolf) = await ForecastFactory.CreateAsync(DateParserHelper.Parse(current.Date));

                await responseStream.WriteAsync(
                    new ForecastResult
                {
                    Date           = date,
                    TemperatureC   = temperatureC,
                    CanYouPlayGolf = canYouPlayGolf,
                    Summary        = summary
                });
            }
        }