public async Task <IActionResult> Edit(Guid id, ItemsBookedCreateEditViewModel vm)
        {
            if (id != vm.Id)
            {
                return(BadRequest(new MessageDTO("Id and vm.id do not match")));
            }

            if (!await _bll.ItemsBooked.ExistsAsync(id, User.UserGuidId()))
            {
                return(NotFound(new MessageDTO($"Booked Item with this id {id} not found")));
            }

            vm.AppUserId = User.UserGuidId();

            if (ModelState.IsValid)
            {
                await _bll.ItemsBooked.UpdateAsync(_mapper.Map(vm));

                await _bll.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            vm.BookingSelectList = new SelectList(await _bll.Bookings.GetAllAsync(User.UserGuidId()), nameof(BookingBLL.Id), nameof(BookingBLL.BookingNumber), vm.BookingId);
            vm.ItemSelectList    = new SelectList(await _bll.Items.GetAllAsync(User.UserGuidId()), nameof(ItemBLL.Id), nameof(ItemBLL.Description), vm.ItemId);

            return(View(vm));
        }
        // GET: ItemsBooked/Create
        public async Task <IActionResult> Create()
        {
            var vm = new ItemsBookedCreateEditViewModel
            {
                BookingSelectList = new SelectList(await _bll.Bookings.GetAllAsync(User.UserGuidId()), nameof(BookingBLL.Id), nameof(BookingBLL.BookingNumber)),
                ItemSelectList    = new SelectList(await _bll.Items.GetAllAsync(User.UserGuidId()), nameof(ItemBLL.Id), nameof(ItemBLL.Description))
            };

            return(View(vm));
        }
        public async Task <IActionResult> Create(ItemsBookedCreateEditViewModel vm)
        {
            vm.AppUserId = User.UserGuidId();

            if (ModelState.IsValid)
            {
                var bllEntity = _mapper.Map(vm);
                _bll.ItemsBooked.Add(bllEntity);
                await _bll.SaveChangesAsync();

                vm.Id = bllEntity.Id;
                return(RedirectToAction(nameof(Index)));
            }

            vm.BookingSelectList = new SelectList(await _bll.Bookings.GetAllAsync(User.UserGuidId()), nameof(BookingBLL.Id), nameof(BookingBLL.BookingNumber), vm.BookingId);
            vm.ItemSelectList    = new SelectList(await _bll.Items.GetAllAsync(User.UserGuidId()), nameof(ItemBLL.Id), nameof(ItemBLL.Description), vm.ItemId);

            return(View(vm));
        }