public async Task <EventBusinessResponseVO> ProcessEvent(DeviceEventDTO dvcEvtDTO) { int value; string valueType = string.Empty; int.TryParse(dvcEvtDTO.Valor, out value); if (value != 0) { valueType = "INT"; } else { valueType = "STR"; } ValidationResultList validatonResultList = _validator.Validate(dvcEvtDTO); //Seria mais elegante ter feito por filters, mas fiz assim para deixar explicito o processo if (validatonResultList.items.Count > 0) { return(new EventBusinessResponseVO("error", "The request provided contain errors", DeviceEventBusinessStatusResponse.ERROR, validatonResultList)); } DeviceEvent dvcEvt = DeviceEvent.CreateFromDTOParameters(dvcEvtDTO.Timestamp, dvcEvtDTO.Tag, dvcEvtDTO.Valor, valueType); await _dvcEvtRepository.Add(dvcEvt); return(new EventBusinessResponseVO("success", "The request was processed successfully", DeviceEventBusinessStatusResponse.SUCCESS, validatonResultList)); }
public void should_record_device_event_with_status_error_when_value_is_empty() { DeviceEventDTO request = new DeviceEventDTO(); request.Timestamp = 1539112021301; request.Tag = testTag; request.Valor = ""; var response = business.ProcessEvent(request).Result; string[] tagSplit = testTag.Split('.'); var dvcEvts = repository.FindBy(d => d.Country == tagSplit[0] && d.Region == tagSplit[1] && d.DeviceName == tagSplit[2] && d.Status == 1).Result.ToList(); Assert.IsTrue(dvcEvts.Any()); Assert.AreEqual("success", response.ShortMessage); }
public async Task <ActionResult <DeviceEventDTO> > Post([FromBody] DeviceEventDTO dvcEvt) { if (dvcEvt != null) { int value; int.TryParse(dvcEvt.Valor, out value); EventBusinessResponseVO response; response = await _business.ProcessEvent(dvcEvt); return(Ok(response)); } else { return(BadRequest(dvcEvt)); } }