Ejemplo n.º 1
0
        /// <summary>
        /// Checks and complete the request.
        /// </summary>
        /// <param name="request">Request to check.</param>
        /// <returns>Request checked.</returns>
        private Request CheckRequest(Request request)
        {
            Request lResult = null;

            // Get the sequence and ticket from the connected agent.
            if (request.Agent != null)
            {
                // Sequence.
                request.Sequence = request.Agent.Sequence;
                request.Agent.Sequence++;

                // Ticket.
                request.Ticket = request.Agent.Ticket;
            }
            else
            {
                // Exception: 'MVAgentValidation' service does not need Agent.
                if ((request.IsQuery) || ((request.IsService) && (request.Service.Name != VALIDATION_SERVICE_NAME)))
                {
                    string lMessage = CultureManager.TranslateString(LanguageConstantKeys.L_LOGIN_ERROR, LanguageConstantValues.L_LOGIN_ERROR);
                    throw new RequestException(lMessage);
                }
            }

            // Application.
            if ((request.Application == null) || request.Application.Length == 0)
            {
                request.Application = this.Application;
            }

            // VersionDTD.
            if ((request.VersionDTD == null) || request.VersionDTD.Length == 0)
            {
                request.VersionDTD = this.VersionDTD;
            }

            // ConnectionString.
            request.ConnectionString = this.ConnectionString;
            if ((request.ConnectionString == null) || request.ConnectionString.Length == 0)
            {
                request.ConnectionString = this.ConnectionString;
            }

            lResult = request;
            return lResult;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Sends and receives data.
        /// </summary>
        /// <param name="request">Data to send.</param>
        /// <returns>Data received.</returns>
        private Response Send(Request request)
        {
            // Hourglass
            System.Windows.Forms.Cursor lCurrentCursor = System.Windows.Forms.Cursor.Current;
            System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;

            Response lResult = null;
            if ((this.Connection != null) && (request != null))
            {
                lResult = new Response();

                // Check the info. of Request.
                CheckRequest(request);

                // Data To Send ...
                StringBuilder lSendData = XMLRequestSerializer.SerializeRoot(null as StringBuilder, request);

                // Send & Received Data ...
                StringBuilder lReceivedData = new StringBuilder(this.Connection.Send(lSendData.ToString()));

                // Throw a ResponseException if have error.
                lResult = XMLResponseSerializer.Deserialize(lReceivedData.ToString());

                // Save Ticket ...
                if (lResult.Ticket != null)
                {
                    request.Agent.Ticket = lResult.Ticket;
                }
            }
            else
            {
                // Hourglass
                System.Windows.Forms.Cursor.Current = lCurrentCursor;

                string lMessageError = CultureManager.TranslateString(LanguageConstantKeys.L_ERROR_REQUEST, LanguageConstantValues.L_ERROR_REQUEST);
                RequestException lrequestException = new RequestException(lMessageError);
                lrequestException.Number = 999;
                throw lrequestException;
            }

            // Hourglass
            System.Windows.Forms.Cursor.Current = lCurrentCursor;

            return lResult;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Executes a query.
        /// </summary>
        /// <param name="agent">Agent who executes the query.</param>
        /// <param name="className">Class name to query.</param>
        /// <param name="alternateKeyName">Indicates the alternate key name of the .</param>
        /// <param name="displaySet">DisplaySet</param>
        /// <param name="queryInstance">Query to execute.</param>
        /// <param name="orderCriteria">Order criteria.</param>
        /// <param name="navigationalFiltering">Navigational Filtering object.</param>
        /// <returns>DataTable with rows of result Query.</returns>
        private DataTable ExecuteQuery(
			Oid agent,
			string className,
			string alternateKeyName,
			string displaySet,
			QueryInstance queryInstance,
			string orderCriteria,
			NavigationalFiltering navigationalFiltering)
        {
            //Create the Query Request.
            QueryRequest lQueryRequest = new QueryRequest(
                            className, displaySet,
                            queryInstance, orderCriteria,
                            navigationalFiltering);

            lQueryRequest.AlternateKeyName = alternateKeyName;

            // Create the Request.
            Request lRequest = new Request(lQueryRequest, agent);
            // Send Request to Server.
            Response lResponse = this.Send(lRequest);
            if ((lResponse != null) && (lResponse.Query != null))
            {
                return lResponse.Query.Data;
            }
            return null;
        }