public ActionResult Create([Bind(Exclude = "UserRole_ID,GUID,IsUserVerified")] User user)
        {
            bool   Status  = false;
            string Message = "";

            try {
                if (ModelState.IsValid)
                {
                    var IsExist = IsEmailExists(user.UserName);
                    if (IsExist)
                    {
                        ModelState.AddModelError("EmailExist", "Email already exists");
                        return(View(user));
                    }
                    // Generate activation code for employee
                    user.GUID = new Guid();

                    //Hash passwords
                    //user.ConfirmPassword = user.UserPassword;
                    //user.ConfirmPassword = EncryptPassword.Hash(user.ConfirmPassword);
                    user.UserPassword   = EncryptPassword.Hash(user.UserPassword);
                    user.IsUserVerified = false;

                    //Save information to database
                    using (The_Book_MarketEntities1 db = new The_Book_MarketEntities1())
                    {
                        //db.Configuration.ValidateOnSaveEnabled = false;
                        db.Users.Add(user);
                        db.SaveChanges();

                        sendVerificationLinkEmail(user.UserName, user.GUID.ToString());
                        Message = "Account Registration successfull. Account activation link" +
                                  "has been sent to your email address:" + user.UserName;
                        return(RedirectToAction("Index"));
                    }
                }
                ViewBag.UserRole_ID = new SelectList(db.User_Role, "UserRole_ID", "UserRole_Description", user.UserRole_ID);
                return(View(user));
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
            {
                Exception raise = dbEx;
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        string message = string.Format("{0}:{1}",
                                                       validationErrors.Entry.Entity.ToString(),
                                                       validationError.ErrorMessage);
                        // raise a new exception nesting
                        // the current instance as InnerException
                        raise = new InvalidOperationException(message, raise);
                    }
                }
                throw raise;
            }
        }
        public bool IsEmailExists(string username)
        {
            using (The_Book_MarketEntities1 db = new The_Book_MarketEntities1())
            {
                var user = db.Users.Where(a => a.UserName == username).FirstOrDefault();

                return(user == null ? false : true);
            }
        }