Пример #1
0
        private TcpMessage HandleMultiRelationQuery(TcpConnectedHost host, TcpMessage message)
        {
            if (!message.HasType(TcpRequestType.MultiRelationQuery))
            {
                return(null);
            }

            if (!IsAuthenticated(host))
            {
                throw AuthException.NotLoggedIn();
            }

            var request = new ParamTcpMessage(message);

            var response = new ObjectTcpMessage <DbRelation>(TcpRequestType.List);

            if (request.HasParam("from_id"))
            {
                var fromId = request.GetParamAsNullableInt("from_id");
                var items  = _dataService.GetRelations(fromId);
                response.Add(items);
                return(response);
            }

            return(TcpMessage.Error("Missing or badly formatted query parameters"));
        }
Пример #2
0
        private TcpMessage HandleUniqueItemQuery(TcpConnectedHost host, TcpMessage message)
        {
            if (!message.HasType(TcpRequestType.UniqueItemQuery))
            {
                return(null);
            }

            if (!IsAuthenticated(host))
            {
                throw AuthException.NotLoggedIn();
            }

            var request = new ParamTcpMessage(message);

            var response = new ObjectTcpMessage <DbItem>(TcpRequestType.List);

            if (request.HasParam("id"))
            {
                var id = request.GetParamAsNullableInt("id");
                if (id != null)
                {
                    var item = _dataService.GetItem(id.Value);
                    response.Add(item);
                    return(response);
                }
            }

            return(TcpMessage.Error("Missing or badly formatted query parameters"));
        }
Пример #3
0
        private TcpMessage HandleUniqueRelationQuery(TcpConnectedHost host, TcpMessage message)
        {
            if (!message.HasType(TcpRequestType.UniqueRelationQuery))
                return null;

            if (!IsAuthenticated(host))
                throw AuthException.NotLoggedIn();

            var request = new ParamTcpMessage(message);

            var response = new ObjectTcpMessage<DbRelation>(TcpRequestType.List);
            if (request.HasParam("from_id") && request.HasParam("identifier"))
            {
                var fromId = request.GetParamAsNullableInt("from_id");
                var identifier = request.GetParam("identifier");
                var relation = _dataService.GetRelation(fromId, identifier);
                response.Add(relation);
                return response;
            }

            return TcpMessage.Error("Missing or badly formatted query parameters");
        }
Пример #4
0
        private TcpMessage HandleUniqueItemQuery(TcpConnectedHost host, TcpMessage message)
        {
            if (!message.HasType(TcpRequestType.UniqueItemQuery))
                return null;

            if (!IsAuthenticated(host))
                throw AuthException.NotLoggedIn();

            var request = new ParamTcpMessage(message);

            var response = new ObjectTcpMessage<DbItem>(TcpRequestType.List);
            if (request.HasParam("id"))
            {
                var id = request.GetParamAsNullableInt("id");
                if (id != null)
                {
                    var item = _dataService.GetItem(id.Value);
                    response.Add(item);
                    return response;
                }
            }

            return TcpMessage.Error("Missing or badly formatted query parameters");
        }