public async Task <ActionResult <SensorDto> > Add([FromBody] SensorAddDto sensorDto) { var outcome = await _sensorDataProvider.Add(sensorDto); if (outcome.Successful) { return(Ok(_mapper.Map <SensorDto>(outcome.Result))); } return(BadRequest(outcome.ErrorMessage)); }
public async Task <Outcome <Sensor> > Add(SensorAddDto sensorDto) { var result = new Outcome <Sensor>(); if (!Enum.GetNames(typeof(SensorState)).Any(x => x.Equals(sensorDto.State, StringComparison.InvariantCultureIgnoreCase))) { result.ErrorMessage = "State is not valid"; return(result); } var farm = await _uow.Repository <Farm>().GetEntityWithSpec(new FarmNameSpecifications(a => a.Name.ToLower() == sensorDto.Farm.ToLower())); if (farm != null) { var state = Enum.GetNames(typeof(SensorState)).FirstOrDefault(x => x.Equals(sensorDto.State, StringComparison.InvariantCultureIgnoreCase)); var sensor = new Sensor(); sensor.FarmId = farm.FarmId; sensor.State = (SensorState)Enum.Parse(typeof(SensorState), state); sensor.CreateDt = DateTime.Now; _uow.Repository <Sensor>().Add(sensor); int output = await _uow.Complete(); if (output >= 1) { result.Result = sensor; return(result); } } else { result.ErrorMessage = "Farm not found"; } return(result); }