//public async Task<IActionResult> AddAsync(EditCustomerViewModel model, string returnUrl = null)
        public async Task <IActionResult> Add(StaffViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName    = model.UserName,
                    Email       = model.Email,
                    FirstName   = model.FirstName,
                    LastName    = model.LastName,
                    PhoneNumber = model.PhoneNumber,
                    Address     = model.Address,
                    Description = model.Description
                };

                try
                {
                    var result = await _userManager.CreateAsync(user, model.Password);

                    if (result.Succeeded)
                    {
                        var role    = StringEnum.GetStringValue(RoleType.Staff);
                        var result1 = await _userManager.AddToRoleAsync(user, role);

                        var staffParam = new DynamicParameters();
                        staffParam.Add(nameof(Staff.Id), user.Id);
                        staffParam.Add(nameof(Staff.StaffCode), model.StaffCode);
                        staffParam.Add(nameof(Staff.Title), model.Title);
                        staffParam.Add(nameof(Staff.Salary), model.Salary);
                        //var createdAt = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds();


                        var unixHireDate = ConvertStringToUnixTimestamp(model.HireDateStr);
                        staffParam.Add(nameof(Staff.HireDate), unixHireDate);

                        _staffRepository.Create(staffParam);
                        _staffRepository.Commit();
                        _logger.LogInformation("Staff created a new account with password.");
                        //return RedirectToLocal(returnUrl);
                        return(RedirectToAction(nameof(StaffsController.Index), "Staffs"));
                    }
                    AddErrors(result);
                }
                catch (Exception ex)
                {
                    _staffRepository.RollBack();
                    _logger.LogError(default(EventId), ex, "Error creating staff");
                    throw;
                }
            }


            return(View(model));
        }