private NetMQMessage OnReceived(NetMQMessage request) { var ret = new NetMQMessage(); var selector = request.Pop(); try { switch (selector.ConvertToString()) { case "RunQuery": { var query = request.UnpackMessage <GraphQuery>(GraphQuery.Parser.ParseFrom); var methodResult = RunQuery(query); ret.PackMessage <GraphResponse>(methodResult);; break; } default: throw new Exception($"Unexpected selector - {selector}"); } } catch (Exception e) { L.Trace($"{selector} caused an exception"); L.Exception(e); ret.AppendEmptyFrame(); ret.Append($"{selector} caused an exception - '{e.Message}' check server logs for more details"); } return(ret); }
public Y Send <T, Y>(string function, Func <Stream, Y> transform, T data, params object[] param) where T : IMessage where Y : IMessage { var msg = new NetMQMessage(); msg.Append(function); msg.PackMessage(data); var result = Send(msg); if (result.First.IsEmpty) { throw new Exception(result[1].ConvertToString()); } return(result.UnpackMessage <Y>(transform)); }
private NetMQMessage OnReceived(NetMQMessage request) { var ret = new NetMQMessage(); var selector = request.Pop(); try { switch (selector.ConvertToString()) { case "StoreParties": { var parties = request.UnpackMessageList <Party>(Party.Parser.ParseDelimitedFrom); var methodResult = StoreParties(parties); ret.Append(methodResult); break; } case "StoreAccounts": { var accounts = request.UnpackMessageList <Account>(Account.Parser.ParseDelimitedFrom); var methodResult = StoreAccounts(accounts); ret.Append(methodResult); break; } case "StoreTransactions": { var transactions = request.UnpackMessageList <Transaction>(Transaction.Parser.ParseDelimitedFrom); var methodResult = StoreTransactions(transactions); ret.Append(methodResult); break; } case "StoreLinkages": { var mappings = request.UnpackMessageList <AccountToParty>(AccountToParty.Parser.ParseDelimitedFrom); var direction = (LinkageDirection)Enum.Parse(typeof(LinkageDirection), request.Pop().ConvertToString()); var methodResult = StoreLinkages(mappings, direction); ret.Append(methodResult); break; } case "GetLinkages": { var source = request.UnpackMessageList <Identifier>(Identifier.Parser.ParseDelimitedFrom); var direction = (LinkageDirection)Enum.Parse(typeof(LinkageDirection), request.Pop().ConvertToString()); var methodResult = GetLinkages(source, direction); ret.PackMessageList <AccountToParty>(methodResult);; break; } case "AccountsExist": { var account = request.UnpackMessageList <Identifier>(Identifier.Parser.ParseDelimitedFrom); var methodResult = AccountsExist(account); ret.PackMessageList <YesNo>(methodResult);; break; } case "RunQuery": { var query = request.UnpackMessage <GraphQuery>(GraphQuery.Parser.ParseFrom); var methodResult = RunQuery(query); ret.PackMessage <GraphResponse>(methodResult);; break; } default: throw new Exception($"Unexpected selector - {selector}"); } } catch (Exception e) { L.Trace($"{selector} caused an exception"); L.Exception(e); ret.AppendEmptyFrame(); ret.Append($"{selector} caused an exception - '{e.Message}' check server logs for more details"); } return(ret); }