public string DeleteUser(int id)
        {
            string err = null;

            var context = new CityLibraryEntities();

            try
            {
                var currentUser = context.Users.SingleOrDefault(u => u.UserID == id);
                if (currentUser != null)
                {
                    currentUser.IsActive = false;

                    context.SaveChanges();
                }

            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);
                err = ex.Message;
            }

            return err;
        }
        public string CreateBook(Book book)
        {
            string err = null;

            var context = new CityLibraryEntities();

            try
            {
                context.Books.Add(book);
                context.SaveChanges();
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);
                err = ex.Message;
            }

            return err;
        }
        public string CreateUser(User user)
        {
            string err = null;

            var context = new CityLibraryEntities();

            try
            {
                //  throw new Exception("aaaaaaaaaaaaa");

                context.Users.Add(user);
                context.SaveChanges();
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);
                err = ex.Message;
            }

            return err;
        }
        public string UpdateUser(User user)
        {
            string err = null;

            var context = new CityLibraryEntities();

            try
            {
                var currentUser = context.Users.SingleOrDefault(u => u.UserID == user.UserID);
                if (currentUser != null)
                {
                    currentUser.FirstName = user.FirstName;
                    currentUser.LastName = user.LastName;

                    context.SaveChanges();
                }

            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);
                err = ex.Message;
            }

            return err;
        }
        public string UpdateBook(Book book)
        {
            string err = null;

            var context = new CityLibraryEntities();

            try
            {
                var currentBook = context.Books.SingleOrDefault(b => b.BookId == book.BookId);
                AutoMapper.Mapper.CreateMap<Book, Book>();
                if (currentBook != null)
                {
                    currentBook = AutoMapper.Mapper.Map<Book, Book>(book);
                    context.SaveChanges();
                }

            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);
                err = ex.Message;
            }

            return err;
        }
        public bool RemoveBorrow(int borrowId)
        {
            var context = new CityLibraryEntities();

            try
            {
                var borrow = context.Borrows.SingleOrDefault(b => b.BorrowId == borrowId);

                if (borrow != null)
                {
                    borrow.IsReturned = true;
                    context.SaveChanges();
                }

                return true;
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);
                return false;
            }
            finally
            {
                context.Dispose();
            }
        }
        public bool OrderBooks(int userId, int[] booksToBorrow)
        {
            var context = new CityLibraryEntities();

            try
            {
                foreach (var bookId in booksToBorrow)
                {
                    var borrow = new Borrow
                    {
                        FromDate = DateTime.Today,
                        ToDate = DateTime.Today.AddDays(7),
                        IsReturned = false,
                        BookId = bookId,
                        UserId = userId
                    };

                    context.Borrows.Add(borrow);
                }

                context.SaveChanges();

                return true;
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message, ex);
                return false;
            }
            finally
            {
                context.Dispose();
            }
        }