public async Task AdvanceAsync(string id, AdvanceDowntimeRequest request)
        {
            var entity = await _readRepository.GetByIdAsync(id);

            var costs = entity.Costs
                        .Select(cost => (
                                    source: cost,
                                    req: request.Costs
                                    .FirstOrDefault(c => c.ActivityCostKind == cost.ActivityCostKind)
                                    ))
                        .Select(cost => new DowntimeCostEntity
            {
                ActivityCostKind = cost.source.ActivityCostKind,
                Value            = cost.req != null
                        ? cost.source.Value + cost.req.Delta
                        : cost.source.Value,
                Goal = cost.source.Goal
            })
                        .ToArray();

            var updatedEntity = new DowntimeEntity
            {
                Character = entity.Character,
                Activity  = entity.Activity,
                Costs     = costs
            };

            await(await _container).ReplaceItemAsync(
                await _entityMutator.UpdateMetadataAsync(updatedEntity, entity, null),
                id
                );
        }
 public async Task AdvanceAsync(string id, AdvanceDowntimeRequest request) =>
 await _service.AdvanceAsync(id, request);
 public async Task AdvanceAsync(string id, AdvanceDowntimeRequest request) =>
 await _writeRepository.AdvanceAsync(id, request);