private void btnSave_Click(object sender, EventArgs e) { MainForm form = (MainForm)this.MdiParent; BookDAO dao = new BookDAO(form.CurrentDatabase.FullName); this.clearErrors(); for (int i = 0; i < _textboxes.Length; i++) { string isbn = _textboxes[i].Text; string uri = Constants.GetWebServiceURI("isbn", isbn); if (isbn == null || isbn.Equals("")) continue; TextBox txtbox = _textboxes[i]; Label lbl = _resultLabels[i]; this.setTextBox(txtbox, lbl, "Processing...", Color.Blue, true, true); WebRequest request = null; WebResponse response = null; try { request = WebRequest.Create(uri); response = request.GetResponse(); } catch(WebException e2) { MessageBox.Show(ErrorMessages.Common.WEB_SERVICE_ERROR, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.setTextBox(txtbox,lbl,"No Connection",Color.Red,true,false); return; } catch (Exception e1) { ExceptionHandler.HandleException(e1); this.setTextBox(txtbox, lbl, "Failure", Color.Red, true, false); continue; } Element element = XMLParser.ParseXML(response.GetResponseStream()); #if DEBUG string tree = ""; int level = 0; XMLParser.GetParseTreeInfo(element, ref tree, ref level); Console.Out.WriteLine(tree); #endif Book book = new Book(); Constants.XMLResultReturnValue result = book.FillFromXMLResults(element); if (result == Constants.XMLResultReturnValue.NOT_FOUND) this.setTextBox(txtbox, lbl, "Not Found", Color.Red, true, false); else if (result == Constants.XMLResultReturnValue.UNKNOWN) this.setTextBox(txtbox, lbl, "Failure", Color.Red, true, false); else if (book != null) { if (_mode == Constants.LibraryMode.LIBRARY && dao.ExistsInLibrary(book)) this.setTextBox(txtbox, lbl, "Already Exists", Color.Red, true, false); else if (_mode == Constants.LibraryMode.WISHLIST && dao.ExistsInWishList(book)) this.setTextBox(txtbox, lbl, "Already Exists", Color.Red, true, false); else if (_mode == Constants.LibraryMode.LIBRARY && !dao.InsertIntoLibrary(book)) this.setTextBox(txtbox, lbl, "Failure", Color.Red, true, false); else if (_mode == Constants.LibraryMode.WISHLIST && !dao.InsertIntoWishList(book)) this.setTextBox(txtbox, lbl, "Failure", Color.Red, true, false); else { this.setTextBox(txtbox, lbl, "Success", Color.Green, true, false); foreach (Form f in this.MdiParent.MdiChildren) { if (f is ViewBooksForm) (f as ViewBooksForm).Refresh(); } } } } }
/// <summary> /// Called when Look Up button is clicked /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnLookUp_Click(object sender, EventArgs e) { if (this.txtLookup.Text.Equals("")) this.errorProvider1.SetError(this.txtLookup, "Fill in data to lookup"); else this.errorProvider1.SetError(this.txtLookup, ""); this.errorProvider1.SetError(this.txtISBN, ""); this.lblResult.Text = "Processing..."; this.lblResult.ForeColor = Color.Blue; this.lblResult.Visible = true; Application.DoEvents(); string uri = Constants.GetWebServiceURI((this.cboLookupBy.SelectedItem as DDItem).Value, this.txtLookup.Text); WebRequest request = null; WebResponse response = null; try { request = WebRequest.Create(uri); response = request.GetResponse(); } catch(WebException e2) { MessageBox.Show(ErrorMessages.Common.WEB_SERVICE_ERROR, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.lblResult.Text = "No Connection"; this.lblResult.ForeColor = Color.Red; this.lblResult.Visible = true; return; } catch (Exception e1) { ExceptionHandler.HandleException(e1); this.lblResult.Text = "Failed"; this.lblResult.ForeColor = Color.Red; this.lblResult.Visible = true; return; } Element element = XMLParser.ParseXML(response.GetResponseStream()); #if DEBUG string tree = ""; int level = 0; XMLParser.GetParseTreeInfo(element,ref tree,ref level); Console.Out.WriteLine(tree); #endif this.lblResult.Text = ""; this.lblResult.Visible = false; _book = new Book(); Constants.XMLResultReturnValue result = _book.FillFromXMLResults(element); if (result == Constants.XMLResultReturnValue.BOOK_ALREADY_EXISTS) { this.lblResult.Text = "Failed"; this.lblResult.ForeColor = Color.Red; this.lblResult.Visible = true; this.errorProvider1.SetError(this.txtLookup, "This book already exists in your library"); } else if (result == Constants.XMLResultReturnValue.NOT_FOUND) { this.lblResult.Text = "Not Found"; this.lblResult.ForeColor = Color.Red; this.lblResult.Visible = true; } else { this.errorProvider1.SetError(this.txtLookup, ""); this.Refresh(); } if (this.chkAutoAdd.Checked == true && result == Constants.XMLResultReturnValue.SUCCESS) { this.save(); this.clear(); } }