public static string Query(string query) { var traceId = Guid.NewGuid().ToString(); Dictionary <string, string> resultDictionary = new Dictionary <string, string>(); using (PlyQorTrace trace = new PlyQorTrace(Configuration.DatabaseConnection, traceId)) { try { var requestDictionary = ValidationProvider.GenerateDictionary(query); RequestManager requestManager = new RequestManager(requestDictionary); var token = requestManager.GetRequestStringValue(RequestKeys.Token); var container = requestManager.GetRequestStringValue(RequestKeys.Container); trace.AddContainer(container); ValidationProvider.CheckToken(container, token); var operation = requestManager.GetRequestStringValue(RequestKeys.Operation); trace.AddOperation(operation); ValidationProvider.CheckOperation(operation); resultDictionary = ExecuteQuery(operation, requestManager); } catch (PlyQorException javelinException) { if (javelinException.Message == StatusCode.ERRMALFORM) { trace.AddCode(StatusCode.ERRMALFORM); return(StatusCode.ERR400); } if (javelinException.Message == StatusCode.ERRBLOCK) { trace.AddCode(StatusCode.ERRBLOCK); return(StatusCode.ERR401); } resultDictionary.Add(ResultKeys.Status, ResultValues.False); resultDictionary.Add(ResultKeys.Code, javelinException.Message); trace.AddCode(javelinException.Message); } resultDictionary.Add(ResultKeys.Trace, traceId); var result = JsonConvert.SerializeObject(resultDictionary); return(result); } }