/// <summary> /// /// </summary> /// <param name="query"></param> /// <returns></returns> public QueryResult ExecuteQuery(Query query) { if (IsConnectedToNetworkDataStore) { if (LoggingEnabled) { LoggingService.LogToDisk(query, true); } if (query.Command == Commands.SERVER_DISCONNECT) { IsConnectedToNetworkDataStore = false; } return(QueryTcpClient.SendQueryAndReturnResult(query)); } if (LoggingEnabled) { LoggingService.LogToDisk(query, false); } switch (query.Command) { case Commands.GET: return(GetValue(query)); case Commands.SET: return(SetValue(query)); case Commands.DELETE: return(DeleteValue(query)); case Commands.SERVER_START: return(StartServer(query)); case Commands.SERVER_STOP: return(StopServer()); case Commands.SERVER_CONNECT: return(ServerConnect(query)); case Commands.SERVER_DISCONNECT: IsConnectedToNetworkDataStore = false; return(new QueryResult("Success", null, null)); case Commands.SAVE: return(SaveDataStore(query)); case Commands.LOAD: return(LoadDataStore(query)); default: return(new QueryResult("Unrecognised Command", null, null)); } }