public Employee Add(Employee employee)
        {
            string randomPass = _Context.MakeOTP(8);

            employee.Password = randomPass;
            Employee res = null;

            while (true)
            {
                employee.Code = _Context.MakeOTP(10, isAllDigits: true);
                if (!_UserCollection.Get(new UserFilter()
                {
                    AccountNumber = employee.Code
                }).Any())
                {
                    break;
                }
            }
            var user = new User();

            user.AccountNumber = employee.Code;
            user.Address       = employee.Address;
            user.Email         = employee.Email;
            user.Gender        = employee.Gender;
            user.Name          = employee.Name;
            user.Phone         = employee.Phone;
            user.Password      = Encrypting.Bcrypt(employee.Password);
            employee.Username  = string.Concat(employee.Name.Split(' ').Last(), employee.Code);
            user.Role          = 2;


            _UserCollection.Create(user);
            if (user.Id != Guid.Empty)
            {
                employee.Id       = user.Id;
                employee.Password = randomPass;
                res = employee;
            }
            return(res);
        }
        public ActionResult CreateAccount(UserViewModel user)
        {
            var converted = UserViewModel.ConvertUserViewModelToModel(user);
            var check     = userlogic.CheckDoubleEmails(converted);

            if (check == true)
            {
                TempData["DoubleEmails"] = "The specified email is already known in our system.";
                return(View());
            }
            else
            {
                _user.Create(converted);
            }
            return(RedirectToAction("Index"));
        }
 public User AddUser(User user)
 {
     _UserCollection.Create(user);
     return(user);
 }