public async Task <ActionResult <IEnumerable <NodeDto> > > GetNodes(CancellationToken cancellationToken)
        {
            try
            {
                var nodes = await this.nodeService.GetNodes(cancellationToken);

                var nodeDtos = this.mapper.Map <IEnumerable <Node>, List <NodeDto> >(nodes);
                var response = new JsonOkResponse <IEnumerable <NodeDto> >(nodeDtos);
                return(Ok(response));
            }
            catch (Exception e)
            {
                var message  = $"An error accured when fetching AllNodes.";
                var errors   = LogError(e, message);
                var response = new JsonErrorResponse(errors);
                return(StatusCode(500, response));
            }
        }
        public async Task <ActionResult <NodeDto> > GetNodeById(
            [FromRoute] string clientId, CancellationToken cancellationToken)
        {
            try
            {
                var node = await this.nodeService.GetNodeById(clientId, cancellationToken);

                var data     = this.mapper.Map <NodeDto>(node);
                var response = new JsonOkResponse <NodeDto>(data);
                return(Ok(response));
            }
            catch (Exception e)
            {
                var message  = $"An error accured when fetching AllNodes.";
                var errors   = LogError(e, message);
                var response = new JsonErrorResponse(errors);
                return(StatusCode(500, response));
            }
        }
        public async Task <ActionResult <IEnumerable <ReadingDto> > > GetNodeReadings(
            [FromRoute] string clientId, CancellationToken cancellationToken)
        {
            try
            {
                var readings = await this.nodeService.GetReadingsById(clientId, cancellationToken);

                var data = this.mapper
                           .Map <IEnumerable <Reading>, List <ReadingDto> >(readings);
                var response = new JsonOkResponse <IEnumerable <ReadingDto> >(data);
                return(Ok(response));
            }
            catch (Exception e)
            {
                var message  = $"An error accured when fetching readings for client: {clientId}.";
                var errors   = LogError(e, message);
                var response = new JsonErrorResponse(errors);
                return(StatusCode(500, response));
            }
        }