public async Task <GameAreaState> PatchArea(GameAreaPatchRequest patchRequest) { logger.LogInformation("Patching area {}: {} -> {}", IdentityString, State, patchRequest); PatchStateIfNeeded(patchRequest.AreaPatchOperations); var e = new GameAreaEvent { TimelineMessage = patchRequest.TimelineMessage }; await areaEventStream.OnNextAsync(e); return(State); }
public async Task <IActionResult> PatchArea([FromRoute] Guid id, [FromBody] GameAreaPatchRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } logger.LogInformation("Paching Area {}: {}", id, request); id = Guid.Empty; //FIXME IGameAreaGrain area = clusterClient.GetGrain <IGameAreaGrain>(id); var resultingState = await area.PatchArea(request); return(Ok(resultingState)); }