private static void UsingIRedisTypedClient(RedisClient client) { var redisTodos = client.As<Todo>(); // Mark all Todos, that have passed deadline, as DONE redisTodos.GetAll() .Where(t => t.Deadline >= DateTime.Now) // Extension method to execute a lambda expression for each element of a IEnumerable<T> .ForEach(t => t.IsDone = true); var todo = new Todo() { Id = redisTodos.GetNextSequence(), Text = "Todo created at " + DateTime.Now, Deadline = DateTime.Now.AddDays(1), IsDone = false, AssignedTo = new User() { Name = "Nakov" } }; redisTodos.Store(todo); redisTodos.GetAll() .Print(); }
private static void UsingIRedisClient(IRedisClient client) { var todosKey = "Todos"; // if list with key "Todos" does not exists, its is dynamically created var todos = client.Lists[todosKey]; long maxId; if (todos.Any()) { // finds the current maximun Id maxId = todos.Max(td => td.Deserialize<Todo>().Id); } else { maxId = 0; } var todo = new Todo() { Id = maxId + 1, Text = "Todo created at " + DateTime.Now, Deadline = DateTime.Now.AddDays(2), AssignedTo = new User() { Name = "Nakov" }, IsDone = false }; // the object must be serialized into JSON to be added todos.Add(todo.Serialize()); todos.Select(t => t.Deserialize<Todo>()) .Select(t => string.Format("\"{0}\" with deadline on {1:ddd, dd-MMM-yyyy} at {1:HH:mm}", t.Text, t.Deadline)) .Print(); }