// POST: api/ToDo public Todo Post([FromBody] Todo value) { int newId = -1; KeysCache.Update(KeysKey, keys => { newId = !keys.Any() ? 1 : keys.Max() + 1; return(keys.Concat(new[] { newId }).ToList()); }); value.Id = newId; TodoCache.Add(TodoKeyPrefix + newId, value); return(value); }