public override async Task <CustomSocket> UpsertSocket(CustomSocket request, ServerCallContext context) { DebugWrite($"RpcCall 'UpsertSocket': '{request}' from {context.Peer}"); var socketTemplate = new CustomSocket(); if (_socketCache.EntityExists(request.SocketName)) { socketTemplate = _socketCache.Get(request.SocketName); } socketTemplate.MergeFrom(request); var socket = await _client.UpsertSocketAsync(socketTemplate); if (_socketCache.EntityExists(request.SocketName)) { SyncProcessors(SyncProcessorsAction.Remove, _socketCache.Get(request.SocketName)); } SyncProcessors(SyncProcessorsAction.Add, socket); _socketCache.Upsert(socket); return(socket); }