Example #1
0
        void ProcessQuery(IRubyMessage request, QueryRequestMessage query)
        {
            if (query.HasName)
            {
                logger_.Info("Processing query: \"" + query.Name + "\"");

                string result;
                IDictionary <string, string> parameters = query.OptionsList
                                                          .ToDictionary(proto => proto.Name, proto => proto.Value);
                bool processed = server_
                                 .QueryProcessor
                                 .Process(query.Name, parameters, out result);
                if (processed)
                {
                    QueryResponseMessage response = new QueryResponseMessage.Builder()
                                                    .SetName(query.Name)
                                                    .SetResponse(result)
                                                    .Build();
                    service_host_.Send(request.Id, (int)MessageType.kQueryResponseMessage,
                                       response.ToByteArray(), request.Sender);
                }
                else
                {
                    string message = string.Format(
                        Resources.Service_CannotProcessQuery_Name_Reason, query.Name, result);
                    service_host_.SendError(request.Id, (int)StatusCode.kBadRequest,
                                            message, request.Sender);
                    if (logger_.IsWarnEnabled)
                    {
                        logger_.Warn(message);
                    }
                }
            }
            else
            {
                string message = string.Format(
                    Resources.Service_Arg_RequiredIsMissing_Name, "name");
                service_host_.SendError(request.Id, (int)StatusCode.kBadRequest,
                                        message, request.Sender);
                if (logger_.IsWarnEnabled)
                {
                    logger_.Warn(message);
                }
            }
        }
        /// <inheritdoc/>
        public virtual string Execute(IQuery query,
                                      IDictionary <string, string> parameters)
        {
            if (query == null)
            {
                throw new ArgumentNullException("query");
            }

            IConnectionProvider provider;

            if (GetConnectionProvider(query, out provider))
            {
                return(Execute(query, parameters, provider));
            }

            logger_.Warn(string.Format(
                             Resources.SqlQueryExecutor_ProviderNotFound_Query, query.Name));
            return(string.Empty);
        }