public async void Post_weather_forecast_ok( )
        {
            var date        = DateTime.Now;
            var temperature = 25;
            var summary     = "Hot";
            var request     = new PostWeatherForecastViewModel(date, temperature, summary);

            var response = await _client
                           .RequestAsync($"{_apiUrl}/{_endpointUrl}/", request, CancellationToken.None)
                           .ThenGet <WeatherForecastViewModel>( );

            Assert.NotNull(response);
        }
示例#2
0
        public async Task <IActionResult> PostAsync([FromBody] PostWeatherForecastViewModel postWeatherForecast, CancellationToken cancellationToken)
        {
            var command = _mapper.Map <PostWeatherForecastCommand>(postWeatherForecast);
            var result  = await _mediator.SendCommandAsync <PostWeatherForecastCommand, WeatherForecast>(command, cancellationToken);

            var response = _mapper.Map <WeatherForecast, WeatherForecastViewModel>(result);

            var simpleJob = new WeatherForecastUpdatedJob(response.WeatherForecastId);
            var jobId     = _mediator.RaiseJob(simpleJob);

            var continuedJob = new WeatherForecastContinuedJob(response.WeatherForecastId, jobId);

            _mediator.RaiseJob(continuedJob);

            return(ResponseRedirect("Get", new { id = response?.WeatherForecastId }));
        }
示例#3
0
        public async void Post_weather_forecast_ok( )
        {
            var date        = DateTime.Now;
            var temperature = 25;
            var summary     = "Hot";
            var request     = new PostWeatherForecastViewModel(date, temperature, summary);

            var response = await _client.PostAsync($"{_apiUrl}/{_endpointUrl}", request);

            if (response.IsSuccessStatusCode)
            {
                var weatherForecast = await response.GetResponseAsync <WeatherForecastViewModel>( );

                Assert.NotNull(weatherForecast);
            }
        }
示例#4
0
        public async Task <IActionResult> PostAsync([FromBody] PostWeatherForecastViewModel postWeatherForecast, CancellationToken cancellationToken, [FromServices] DbTransaction dbTransaction)
        {
            // SQLite does not support multiple transactions, to use transactions do not use persistent jobs
            // Uncomment the '.UseTransaction( )' line at Startup
            await using var transaction = new Transactions(dbTransaction);
            var command = _mapper.Map <PostWeatherForecastCommand>(postWeatherForecast);
            var result  = await _mediator.SendCommandAsync <PostWeatherForecastCommand, WeatherForecast>(command, cancellationToken);

            var response = _mapper.Map <WeatherForecast, WeatherForecastViewModel>(result);

            await transaction.CommitAsync( );

            var simpleJob = new WeatherForecastUpdatedJob(response.WeatherForecastId);
            var jobId     = _mediator.RaiseJob(simpleJob);

            var continuedJob = new WeatherForecastContinuedJob(response.WeatherForecastId, jobId);

            _mediator.RaiseJob(continuedJob);

            return(ResponseRedirect("Get", new { id = response?.WeatherForecastId }));
        }