/// <summary>
        ///
        /// </summary>
        /// <param name="user"></param>
        public void Update(User user)
        {
            try
            {
                if (string.IsNullOrEmpty(user.FullName.Trim()))
                {
                    throw new SecurityException("Create user fail. FullName can not blank");
                }
                if (DataChecker.IsValidEmail(user.Email) == false)
                {
                    throw new SecurityException("Create user fail. Invalid email address");
                }

                Adapter.Update(user);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <param name="fullname"></param>
        /// <param name="question"></param>
        /// <param name="answer"></param>
        /// <param name="email"></param>
        /// <returns></returns>
        public User CreateUser(string username, string password, string fullname, string email, bool blocked)
        {
            try
            {
                // validate input parameters
                if (string.IsNullOrEmpty(username.Trim()))
                {
                    throw new SecurityException("Create user fail. Username can not blank");
                }
                if (string.IsNullOrEmpty(password.Trim()))
                {
                    throw new SecurityException("Create user fail. Password can not blank");
                }
                if (string.IsNullOrEmpty(fullname.Trim()))
                {
                    throw new SecurityException("Create user fail. FullName can not blank");
                }
                if (DataChecker.IsValidEmail(email) == false)
                {
                    throw new SecurityException("Create user fail. Invalid email address");
                }
                if (DataChecker.IsValidPassword(password) == false)
                {
                    throw new SecurityException("Create user fail. Invalid password");
                }

                // create user
                User user = Adapter.Create(username, password, fullname, email, blocked);

                return(user);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }