public async Task <IActionResult> ProviderUpdate(TravelProviderUpdateProfileViewModel vm)
        {
            if (ModelState.IsValid)
            {
                //get the user who already logged in
                IdentityUser user = await _userManagerService.FindByNameAsync(User.Identity.Name);

                //get the profile for this user
                TravelProvider provider = _providerDataService.GetSingle(p => p.UserId == user.Id);
                //map the vm
                //  provider.UserId = user.Id;
                provider.CompanyName = vm.CompanyName;
                provider.Phone       = vm.Phone;
                provider.Address     = vm.Address;
                provider.WebSite     = vm.WebSite;
                user.Email           = vm.Email;
                user.UserName        = vm.UserName;

                //save changes
                _providerDataService.Update(provider);
                await _userManagerService.UpdateAsync(user);

                //go home
                return(RedirectToAction("Index", "Home"));
            }
            return(View(vm));
        }
        public async Task <IActionResult> ProviderUpdate()
        {
            //get the user who already logged in
            IdentityUser user = await _userManagerService.FindByNameAsync(User.Identity.Name);

            //get the profile for this user
            TravelProvider provider = _providerDataService.GetSingle(p => p.UserId == user.Id);
            //create vm
            TravelProviderUpdateProfileViewModel vm = new TravelProviderUpdateProfileViewModel
            {
                CompanyName = provider.CompanyName,
                Phone       = provider.Phone,
                Address     = provider.Address,
                WebSite     = provider.WebSite,
                Email       = user.Email,
                UserName    = user.UserName
            };

            return(View(vm));
        }