public async Task Change_sensor_activation_and_response_ok_status_code(int dataSetIndex, bool isActive)
        {
            //Arrange
            var dataSet = new List <Sensor>
            {
                Defaults.ActivePortableSensor,
                Defaults.ActiveStaticSensor
            };
            var currentSensor = dataSet[dataSetIndex];

            using var server = await GetDefaultTestServerBuilder()
                               .UseSensors(currentSensor)
                               .UseDefaultAuth()
                               .BuildAsync();

            var client = server.CreateClient();

            var changeActivationSensor = new ChangeActivationSensorModel()
            {
                Id = currentSensor.Id, IsActive = isActive
            };
            var changeActivationSensorJsonStr = JsonConvert.SerializeObject(changeActivationSensor);

            //Act
            var response = await client.PostAsync("api/admin/sensors/changeActivation",
                                                  new StringContent(changeActivationSensorJsonStr, Encoding.UTF8, "application/json"));

            //Assert
            response.EnsureSuccessStatusCode();
        }
        public async Task <ActionResult> ChangeActivation([Bind(Prefix = nameof(ChangeActivationSensorViewModel.Model))]
                                                          [BindRequired] ChangeActivationSensorModel model)
        {
            if (!ModelState.IsValid)
            {
                return(await BuildChangeActivationResultAsync(model.Id, model));
            }

            var command = _mapper.Map <ChangeActivationSensorModel, ChangeSensorActivationStateCommand>(model);
            await _mediator.Send(command);

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> ChangeActivation(
            ChangeActivationSensorModel model)
        {
            if (!ModelState.IsValid)
            {
                return(ValidationProblem());
            }

            try
            {
                var command = _mapper.Map <ChangeActivationSensorModel, ChangeSensorActivationStateCommand>(model);
                await _mediator.Send(command);
            }
            catch (SensorNotFoundException ex)
            {
                return(NotFound(ex.Message));
            }

            return(Ok());
        }
        public async Task Change_sensor_activation_and_response_not_found_status_code()
        {
            //Arrange
            using var server = new TestServerBuilder()
                               .UseDefaultAuth()
                               .Build();
            var client = server.CreateClient();

            var changeActivationSensor = new ChangeActivationSensorModel {
                Id = 1
            };
            var changeActivationSensorJsonStr = JsonConvert.SerializeObject(changeActivationSensor);

            //Act
            var response = await client.PostAsync("api/admin/sensors/changeActivation",
                                                  new StringContent(changeActivationSensorJsonStr, Encoding.UTF8, "application/json"));

            //Assert
            Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
        }
        private async Task <ActionResult> BuildChangeActivationResultAsync(int?sensorId,
                                                                           ChangeActivationSensorModel model = null)
        {
            if (!sensorId.HasValue)
            {
                return(this.StatusCodeView(HttpStatusCode.BadRequest, "Sensor id is required!"));
            }

            var sensor = await _readingsQueries.GetSensorByIdAsync(sensorId.Value);

            if (sensor == null)
            {
                return(this.StatusCodeView(HttpStatusCode.NotFound, $"Sensor with id: {sensorId} not found"));
            }

            var detailsVM = _mapper.Map <SensorDTO, SensorDetailsViewModel>(sensor);
            var vm        = new ChangeActivationSensorViewModel(model ?? new ChangeActivationSensorModel
            {
                Id       = sensor.Id,
                IsActive = sensor.IsActive
            }, detailsVM);

            return(View(vm));
        }
示例#6
0
 public ChangeActivationSensorViewModel(ChangeActivationSensorModel model, SensorDetailsViewModel details)
 {
     Model   = model;
     Details = details;
 }