using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MongoDB.Driver; using MongoDB.Bson; using IntroMongo.Models; using MongoDB.Driver.Builders; namespace IntroMongo.Controllers { public class UserController : Controller { public ActionResult Index() { // Get all users by sorting by createdate var users = MongoWrapper.GetDatabase(). GetCollection("users"). FindAll(). SetSortOrder(SortBy.Descending("createdate")); return View(users); } public ActionResult Edit(string id) { // Obtain id compatible with MongoDB to query var objectId = ObjectId.Parse(id); // Get user by id var user = MongoWrapper.GetDatabase(). GetCollection("users"). FindOneByIdAs<User>(ObjectId.Parse(id)); return View(user); } [HttpPost] public ActionResult Edit(string id, User userToEdit) { // Get user collection reference var users = MongoWrapper.GetDatabase().GetCollection("users"); // Update user by id var user = users.FindOneById(ObjectId.Parse(id)); user["firstname"] = userToEdit.FirstName; user["lastname"] = userToEdit.LastName; user["age"] = userToEdit.Age; // Update user object users.Save(user); return RedirectToAction("Index"); } public ActionResult New() { return View(); } [HttpPost] public ActionResult New(string id, User userToEdit) { // Get user collection reference var users = MongoWrapper.GetDatabase().GetCollection("users"); // Create BsonDocument object for new user var user = new BsonDocument(); user["firstname"] = userToEdit.FirstName; user["lastname"] = userToEdit.LastName; user["age"] = userToEdit.Age; user["createdate"] = DateTime.Now; // Insert new user object to collection users.Insert(user); return RedirectToAction("Index"); } } }
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)