public async Task<ActionResult> Register(RegisterModel model)
        {
            if (!ModelState.IsValid)
                return View(model);

            var blogContext = new BlogContext();
            // XXX WORK HERE
            // create a new user and insert it into the database
            var builder = Builders<User>.Filter;
            var filter = builder.Eq("Email", model.Email);
            await blogContext.Users.InsertOneAsync(new User { Name = model.Name, Email = model.Email });

            return RedirectToAction("Index", "Home");
        }
        public async Task<ActionResult> Register(RegisterModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            var blogContext = new BlogContext();
            var user = new User
            {
                Name = model.Name,
                Email = model.Email
            };

            await blogContext.Users.InsertOneAsync(user);
            return RedirectToAction("Index", "Home");
        }
        public async Task<ActionResult> Register(RegisterModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            var blogContext = new BlogContext();
            // create a new user and insert it into the database
            var user = new User
            {
                Email = model.Email,
                Name = model.Name
            };
            await blogContext.Users.InsertOneAsync(user);

            return RedirectToAction("Index", "Home");
        }
        public async Task<ActionResult> Register(RegisterModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            var blogContext = new BlogContext();

            //Create user model for insert operation
            User user = new User();
            user.Email = model.Email;
            user.Name = model.Name;

            blogContext.InsertUser(user);

            
            return RedirectToAction("Index", "Home");
        }
        public async Task<ActionResult> Register(RegisterModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            var blogContext = new BlogContext();
            // XXX WORK HERE
            // create a new user and insert it into the database

            //var existingResult = await blogContext.Users.Find(
            //    new ExpressionFilterDefinition<User>(d => d.Email == model.Email)).ToListAsync();
            //if (existingResult.Count > 0)
            //{
            //    ModelState.AddModelError("Email", "User with this email already exists!");
            //    return View(model);
            //}

            var newUser = new User
            {
                Email = model.Email,
                Name = model.Name
            };
            await blogContext.Users.InsertOneAsync(newUser);
            //var identity = new ClaimsIdentity(new[]
            //    {
            //        new Claim(ClaimTypes.Name, newUser.Name),
            //        new Claim(ClaimTypes.Email, newUser.Email)
            //    },
            //    "ApplicationCookie");

            //var context = Request.GetOwinContext();
            //var authManager = context.Authentication;

            //authManager.SignIn(identity);
            return RedirectToAction("Index", "Home");
        }
        public async Task<ActionResult> Register(RegisterModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            var blogContext = new BlogContext();
            // XXX WORK HERE
            // create a new user and insert it into the database
            User NewUser = new User(model.Name, model.Email);
            IMongoCollection<User> usersCollection = getCollection();
            await usersCollection.InsertOneAsync(NewUser);

            return RedirectToAction("Index", "Home");
        }