public void LoadBook(string requestUrl)
        {
            this.Visibility = Visibility.Collapsed;
            //mainWindow.ProgressBar.Visibility = Visibility.Visible;

            var loadBookHandler = new HttpHandler(null, this);
            loadBookHandler.RequestCompleted += HandlerLoadBookRequestCompleted;
            loadBookHandler.LoadBook();
        }
        private void DeleteButton_OnClick(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("Do you want to delete this book?",
              "Confirmation", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
            {
                this.Visibility = Visibility.Collapsed;
                mainWindow.ProgressBar.Visibility = Visibility.Visible;

                selectedBook = (Book)(sender as Button).DataContext;
                var deleteBookHandler = new HttpHandler(null, this);
                deleteBookHandler.RequestCompleted += HandlerDeleteBookRequestCompleted;
                deleteBookHandler.DeleteBook(selectedBook.Id);
            }
        }
        private void OkButton_OnClick(object sender, RoutedEventArgs e)
        {
            if (Name.Text.Equals("") || CoverImage.Text.Equals("") || Description.Text.Equals("") ||
                Author.Text.Equals("") || Status.Text.Equals("") || Date.Text.Equals("") || PageCount.Text.Equals(""))
            {
                return;
            }

            MainWindow win = (MainWindow)Window.GetWindow(this);
            if (Name.Text.Equals(book.Name) && CoverImage.Text.Equals(book.Picture) && Description.Text.Equals(book.Description) &&
                Author.Text.Equals(book.Author) && Status.Text.Equals(book.Status) && Date.Text.Equals(book.PublishDate) &&
                PageCount.Text.Equals(book.PageCount.ToString()))
            {
                win = (MainWindow)Window.GetWindow(this);
                win.GoBack(sender, e);
                return;
            }

            showProgressBarAndHideCurrentContent();

            if (!(CoverImage.Text.Equals(book.Picture)))
            {
                UpLoadImage(CoverImage.Text);
            }
            else
            {
                Dictionary<string, string> dic = new Dictionary<string, string>();
                dic.Add("name", Name.Text);
                dic.Add("description", Description.Text);
                dic.Add("picture", CoverImage.Text);
                dic.Add("author", Author.Text);
                dic.Add("status", Status.Text);
                dic.Add("published_date", Date.Text);
                dic.Add("page_count", PageCount.Text);

                var editBookHandler = new HttpHandler(dic, this);
                editBookHandler.RequestCompleted += HandlerEditBookRequestCompleted;
                editBookHandler.EditBook(book.Id);
            }
        }
        void UploadImageRequestCompleted(object sender, UploadFileCompletedEventArgs e)
        {
            if (e.Error != null)
            {
                MessageBoxResult r = MessageBox.Show(e.Error.Message, "Network error");
                Debug.WriteLine(e.Error.Message);
                MainWindow win = (MainWindow)Application.Current.MainWindow;
                this.Visibility = Visibility.Visible;
                win.ProgressBar.Visibility = Visibility.Collapsed;
            }
            else
            {
                string result = System.Text.Encoding.UTF8.GetString(e.Result);
                System.Web.Script.Serialization.JavaScriptSerializer js =
                new System.Web.Script.Serialization.JavaScriptSerializer();
                var obj = js.Deserialize<dynamic>(result);
                if (obj["status_code"] != 200)
                {
                    throw new Exception(String.Format(
                    "Server error (HTTP {0}: {1}).",
                    obj["status_code"],
                    obj["status_txt"]));
                }

                else
                {
                    imageUrl = (obj["data"])["thumb_url"];

                    Dictionary<string, string> dic = new Dictionary<string, string>();
                    dic.Add("name", Name.Text);
                    dic.Add("description", Description.Text);
                    dic.Add("picture", imageUrl);
                    dic.Add("author", Author.Text);
                    dic.Add("status", Status.Text);
                    dic.Add("published_date", Date.Text);
                    dic.Add("page_count", PageCount.Text);

                    var editBookHandler = new HttpHandler(dic, this);
                    editBookHandler.RequestCompleted += HandlerEditBookRequestCompleted;
                    editBookHandler.EditBook(book.Id);
                }
            }          
        }