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);