Untitled

 avatar
unknown
csharp
a year ago
3.6 kB
4
Indexable
            // Create request body
            TartabitApiDeviceReadLwm2mDataRequest outgoingRequest = new TartabitApiDeviceReadLwm2mDataRequest();

            // Setup database connection class
            VcDatabase VcDatabaseConnection = new VcDatabase(_logger, _cosmosClient);
            if (!VcDatabaseConnection.Connect())
            {
                _logger.LogError("Database could not connect.");
                response.StatusCode = HttpStatusCode.InternalServerError;
                response.WriteString("{\"errorMessage\" : \"Database could not connect\"}");
                return response;
            }

            // Add content based on incoming request data
            string? translatedDeviceIdToTartabitId = await VcDatabaseConnection.TranslateDeviceIdToTartabitId(incomingRequest.id);
            if (translatedDeviceIdToTartabitId is null)
            {
                switch (VcDatabaseConnection.lastReturnStatus)
                {
                    case (VcDatabase.VcDatabaseReturnStatusCode.ItemNotFound):
                        _logger.LogInformation("Device not found while reading by DeviceID");
                        response.StatusCode = HttpStatusCode.NotFound;
                        response.WriteString("{\"errorMessage\" : \"Device not found in database\"}");
                        return response;
                    case (VcDatabase.VcDatabaseReturnStatusCode.DatabaseFailure):
                        _logger.LogError("Could not connect to database while reading by DeviceID");
                        response.StatusCode = HttpStatusCode.InternalServerError;
                        response.WriteString("{\"errorMessage\" : \"Could not connect to database while reading by DeviceID\"}");
                        return response;
                    case (VcDatabase.VcDatabaseReturnStatusCode.ContainerFailure):
                        _logger.LogError("Could not connect to container while reading by DeviceID");
                        response.StatusCode = HttpStatusCode.InternalServerError;
                        response.WriteString("{\"errorMessage\" : \"Could not connect to container while reading by DeviceID\"}");
                        return response;
                    case (VcDatabase.VcDatabaseReturnStatusCode.NotConnected):
                        _logger.LogError("Not connected to database while reading by DeviceID");
                        response.StatusCode = HttpStatusCode.InternalServerError;
                        response.WriteString("{\"errorMessage\" : \"Not connected to database while reading by DeviceID\"}");
                        return response;
                    case (VcDatabase.VcDatabaseReturnStatusCode.BadInput):
                        _logger.LogError("Bad input while reading by DeviceID");
                        response.StatusCode = HttpStatusCode.BadRequest;
                        response.WriteString("{\"errorMessage\" : \"Bad input while reading by DeviceID\"}");
                        return response;
                    default:
                        _logger.LogError("Unknown error occurred while reading by DeviceID.");
                        response.StatusCode = HttpStatusCode.InternalServerError;
                        response.WriteString("{\"errorMessage\" : \"Unknown error occurred while reading by DeviceID.\"}");
                        return response;
                }
            }
            outgoingRequest.id = translatedDeviceIdToTartabitId;
            _logger.LogInformation("Successfully translated DeviceId to TartabitId through GET method.");
Editor is loading...
Leave a Comment