示例#1
0
 public async IAsyncEnumerable <WeatherForecast> Get(int quantity)
 {
     await foreach (var f in ForecastFactory.CreateMultipleAsync(quantity))
     {
         yield return(new WeatherForecast
         {
             Date = f.date,
             TemperatureC = f.temperatureC,
             Summary = f.summary,
             CanYouPlayGolf = f.canYouPlayGolf
         });
     }
 }
 public override async Task ForecastInfoServerStreaming(GetForecastRequest request, IServerStreamWriter <ForecastResult> responseStream, ServerCallContext context)
 {
     await foreach (var forecast in ForecastFactory.CreateMultipleAsync(request.ForecastDaysQuantity))
     {
         await responseStream.WriteAsync(new ForecastResult
         {
             Date           = forecast.date,
             TemperatureC   = forecast.temperatureC,
             Summary        = forecast.summary,
             CanYouPlayGolf = forecast.canYouPlayGolf
         });
     }
 }
        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
            });
        }
示例#4
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
            });
        }
示例#5
0
 private static async Task WriteStream(IClientStreamWriter <PostForecastRequest> requestStream)
 {
     await foreach (var f in ForecastFactory.CreateMultipleAsync(10))
     {
         await requestStream.WriteAsync(new PostForecastRequest
         {
             Date           = f.date,
             TemperatureC   = f.temperatureC,
             Summary        = f.summary,
             CanYouPlayGolf = f.canYouPlayGolf
         });
     }
     await requestStream.CompleteAsync();
 }
        private async Task WriteStream(IServerStreamWriter <ForecastResult> requestStream)
        {
            var forecasts = ForecastFactory.CreateMultipleAsync(10);

            await foreach (var f in forecasts)
            {
                await requestStream.WriteAsync(new ForecastResult
                {
                    Date           = f.date,
                    TemperatureC   = f.temperatureC,
                    Summary        = f.summary,
                    CanYouPlayGolf = f.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
                });
            }
        }
示例#8
0
        public static async Task PostForecast(int quantity)
        {
            var weatherForecastClient = GetGrpcClient();

            using (var call = weatherForecastClient.ForecastInfoClientStreaming())
            {
                var forecasts = ForecastFactory.CreateMultipleAsync(quantity);
                var stream    = call.RequestStream;
                await foreach (var f in forecasts)
                {
                    await stream.WriteAsync(new PostForecastRequest
                    {
                        Date           = f.date,
                        TemperatureC   = f.temperatureC,
                        Summary        = f.summary,
                        CanYouPlayGolf = f.canYouPlayGolf
                    });
                }
                await stream.CompleteAsync();
            }
        }
示例#9
0
 /// <summary>
 /// Method that setup all collection of the database with POCO
 /// </summary>
 public void init()
 {
     // entities
     logAdministrative = new LogAdministrativeFactory(db);
     logService        = new LogServiceFactory(db);
     state             = new StateFactory(db);
     municipality      = new MunicipalityFactory(db);
     weatherStation    = new WeatherStationFactory(db);
     crop               = new CropFactory(db);
     cultivar           = new CultivarFactory(db);
     soil               = new SoilFactory(db);
     historicalClimatic = new HistoricalClimaticFactory(db);
     historicalYield    = new HistoricalYieldFactory(db);
     climatology        = new ClimatologyFactory(db);
     forecast           = new ForecastFactory(db);
     forecastClimate    = new ForecastClimateFactory(db);
     forecastYield      = new ForecastYieldFactory(db);
     forecastScenario   = new ForecastScenarioFactory(db);
     user               = new UserFactory(db);
     role               = new RoleFactory(db);
     source             = new SourceFactory(db);
     // views
     views = new ViewsFactory(db);
 }