// GET: UserOnAddresses/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var userOnAddress = await _bll.UserOnAddresses.FindAsync(id);

            if (userOnAddress == null)
            {
                return(NotFound());
            }
            var vm = new UserOnAddressEditViewModel()
            {
                AppUserSelectList = new SelectList(await _bll.AppUsers.AllAsync(),
                                                   nameof(BLL.App.DTO.Identity.AppUser.Id),
                                                   nameof(BLL.App.DTO.Identity.AppUser.Id),
                                                   userOnAddress.AppUserId),
                AddressSelectList = new SelectList(await _bll.Addresses.AllAsync(),
                                                   nameof(BLL.App.DTO.Address.Id),
                                                   nameof(BLL.App.DTO.Address.Id),
                                                   userOnAddress.AddressId),
            };

            return(View(vm));
        }
        public async Task <IActionResult> Edit(int id, UserOnAddressEditViewModel vm)
        {
            if (id != vm.UserOnAddress.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                _bll.UserOnAddresses.Update(vm.UserOnAddress);
                await _bll.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            vm.AppUserSelectList = new SelectList(await _bll.AppUsers.AllAsync(),
                                                  nameof(BLL.App.DTO.Identity.AppUser.Id),
                                                  nameof(BLL.App.DTO.Identity.AppUser.Id),
                                                  vm.UserOnAddress.AppUserId);
            vm.AddressSelectList = new SelectList(await _bll.Addresses.AllAsync(),
                                                  nameof(BLL.App.DTO.Address.Id),
                                                  nameof(BLL.App.DTO.Address.Id),
                                                  vm.UserOnAddress.AddressId);

            return(View(vm));
        }