public IHttpActionResult PutSmartMeterData(int id, SmartMeterData smartMeterData)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != smartMeterData.Id)
            {
                return(BadRequest());
            }

            SmartMeterData s = _unitOfWork.SmartMeterDatas.Get(id);

            if (s == null)
            {
                return(NotFound());
            }


            s.Consumed  = smartMeterData.Consumed;
            s.Produced  = smartMeterData.Produced;
            s.StartTime = smartMeterData.StartTime;
            s.EndTime   = smartMeterData.EndTime;

            _unitOfWork.Complete();

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IHttpActionResult GetSmartMeterData(int id)
        {
            SmartMeterData smartMeterData = _unitOfWork.SmartMeterDatas.Get(id);

            if (smartMeterData == null)
            {
                return(NotFound());
            }

            return(Ok(smartMeterData));
        }
        public IHttpActionResult PostSmartMeterData(SmartMeterData smartMeterData)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _unitOfWork.SmartMeterDatas.Add(smartMeterData);
            _unitOfWork.Complete();

            return(CreatedAtRoute("DefaultApi", new { id = smartMeterData.Id }, smartMeterData));
        }
        public IHttpActionResult DeleteSmartMeterData(int id)
        {
            SmartMeterData smartMeterData = _unitOfWork.SmartMeterDatas.Get(id);

            if (smartMeterData == null)
            {
                return(NotFound());
            }

            _unitOfWork.SmartMeterDatas.Remove(smartMeterData);
            _unitOfWork.Complete();

            return(Ok(smartMeterData));
        }