示例#1
0
        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);
        }
示例#3
0
        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));
            }
        }