//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)); }