public async Task <IActionResult> BookCheckOut(BookCheckOut vm)
        {
            await _bookActivityManager.BookCheckOut(vm, vm.bookIds);

            return(Ok(new Response <BookCheckOut> {
                Succeeded = true,
                Message = "checkout for books is successfull",
                Data = vm
            }));
        }
        public async Task BookCheckOut(BookCheckOut vm, int[] bookIds)
        {
            if (bookIds == null)
            {
                _logger.LogInformation("error  log message");

                throw new BaseException(HttpStatusCode.BadRequest, "bookIds can not be null or empty");
            }


            for (int i = 0; i < bookIds.Length - 1; i++)
            {
                if (!(await _booksReprository.BookExists(bookIds[i])))
                {
                    _logger.LogInformation("error  log message");
                    throw new BaseException(HttpStatusCode.BadRequest, $"you cant checkout the book with Id : {bookIds}");
                }
                ;
            }

            var BooksActivity = bookIds.AsEnumerable().Select(s => new BooksActivity {
                BooksId         = s,
                CheckOut        = vm.CheckOutDate,
                RetUrnDays      = vm.ExpectedReturnDay,
                ExpectedCheckIn = vm.CheckOutDate.AddBusinessDays(vm.ExpectedReturnDay),
            }).ToList();

            var user = new Users {
                Email = vm.Email, FullName = vm.FullName,
                NIN   = vm.NIN, PhoneNumber = vm.PhoneNumber, BooksActivity = BooksActivity
            };



            _IUserReprository.AddUser(user);

            _booksReprository.UpdateBookStatus(bookIds);

            if (!(await _IUserReprository.SaveAsync()))
            {
                throw new BaseException(HttpStatusCode.InternalServerError, $"an error occure while saving data");
            }
        }