private async Task <ActionResult> BuildDeleteResultAsync(int?sensorId, DeleteSensorModel 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")); } if (sensor.IsActive) { return(this.StatusCodeView(HttpStatusCode.Conflict, "Unable to delete active sensor")); } var detailsVM = _mapper.Map <SensorDTO, SensorDetailsViewModel>(sensor); var vm = new DeleteSensorViewModel(model ?? new DeleteSensorModel { Id = sensor.Id }, detailsVM); return(View(vm)); }
public async Task Delete_sensor_and_response_ok_status_code(int dataSetIndex, bool isCompletely) { //Arrange var dataSet = new List <Sensor> { Defaults.PortableSensor, Defaults.StaticSensor }; var currentSensor = dataSet[dataSetIndex]; using var server = await GetDefaultTestServerBuilder() .UseSensors(currentSensor) .UseCustomAuth(AdminAreaDefaults.DefaultUser, AuthSettings.Roles.Supervisor) .BuildAsync(); var client = server.CreateClient(); var deleteSensor = new DeleteSensorModel { Id = currentSensor.Id, IsCompletely = isCompletely }; var deleteSensorJsonStr = JsonConvert.SerializeObject(deleteSensor); //Act var response = await client.SendAsync(new HttpRequestMessage(HttpMethod.Delete, "api/admin/sensors") { Content = new StringContent(deleteSensorJsonStr, Encoding.UTF8, "application/json") }); //Assert response.EnsureSuccessStatusCode(); }
public async Task <ActionResult> Delete( DeleteSensorModel model) { if (!ModelState.IsValid) { return(ValidationProblem()); } try { var command = _mapper.Map <DeleteSensorModel, DeleteSensorCommand>(model); await _mediator.Send(command); } catch (SensorNotFoundException ex) { return(NotFound(ex.Message)); } return(Ok()); }
public async Task Delete_sensor_and_response_not_found_status_code() { //Arrange using var server = new TestServerBuilder() .UseCustomAuth(AdminAreaDefaults.DefaultUser, AuthSettings.Roles.Supervisor) .Build(); var client = server.CreateClient(); var deleteSensor = new DeleteSensorModel { Id = 1 }; var deleteSensorJsonStr = JsonConvert.SerializeObject(deleteSensor); //Act var response = await client.SendAsync(new HttpRequestMessage(HttpMethod.Delete, "api/admin/sensors") { Content = new StringContent(deleteSensorJsonStr, Encoding.UTF8, "application/json") }); //Assert Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); }
public async Task <ActionResult> Delete([Bind(Prefix = nameof(DeleteSensorViewModel.Model))] [BindRequired] DeleteSensorModel model) { if (!ModelState.IsValid) { return(await BuildDeleteResultAsync(model.Id, model)); } try { var command = _mapper.Map <DeleteSensorModel, DeleteSensorCommand>(model); await _mediator.Send(command); } catch (SensorNotFoundException ex) { return(this.StatusCodeView(HttpStatusCode.NotFound, ex.Message)); } catch (SensorUnableApplyActionException ex) { return(this.StatusCodeView(HttpStatusCode.Conflict, ex.Message)); } return(RedirectToAction("Index")); }
public DeleteSensorViewModel(DeleteSensorModel model, SensorDetailsViewModel details) { Model = model; Details = details; }