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); }