public virtual BorrowResponse Borrow(Borrow req) { // Create request header String action; action = "http://tempuri.org/IService/Borrow"; WsWsaHeader header; header = new WsWsaHeader(action, null, EndpointAddress, m_version.AnonymousUri, null, null); WsMessage request = new WsMessage(header, req, WsPrefix.None); // Create request serializer BorrowDataContractSerializer reqDcs; reqDcs = new BorrowDataContractSerializer("Borrow", "http://tempuri.org/"); request.Serializer = reqDcs; request.Method = "Borrow"; // Send service request m_requestChannel.Open(); WsMessage response = m_requestChannel.Request(request); m_requestChannel.Close(); // Process response BorrowResponseDataContractSerializer respDcs; respDcs = new BorrowResponseDataContractSerializer("BorrowResponse", "http://tempuri.org/"); BorrowResponse resp; resp = ((BorrowResponse)(respDcs.ReadObject(response.Reader))); response.Reader.Dispose(); response.Reader = null; return resp; }
public void BorrowBook() { try { //show a loading message View.ShowLoading(); using (IServiceClientProxy proxy = new IServiceClientProxy(binding, new ProtocolVersion11())) { //execute the borrow request int bookId = LibraryModelSingleton.Instance.Book.ID; int userId = LibraryModelSingleton.Instance.User.ID; Borrow borrowRequest = new Borrow() { bookID = bookId, userID = userId }; BorrowResponse response = proxy.Borrow(borrowRequest); //show positive a message if the result is valid otherwise a negative message //and return in the welcome page state = InnerState.WELCOME; string msg = (response.BorrowResult.StartDate.Equals(DateTime.MinValue)) ? BORROW_FAILED_MSG : OPERATION_COMPLETED_MSG; View.ShowMessageWithButton(msg, () => { View.ShowWelcomePage(); }); } } //show a message and then returns in the login page catch (Exception) { View.ShowMessageWithButton(ERROR_MSG, () => { this.Logout(); }); } }
public override object ReadObject(XmlReader reader) { Borrow BorrowField = null; if (IsParentStartElement(reader, false, true)) { BorrowField = new Borrow(); reader.Read(); if (IsChildStartElement(reader, "userID", false, false)) { reader.Read(); BorrowField.userID = XmlConvert.ToInt32(reader.ReadString()); reader.ReadEndElement(); } if (IsChildStartElement(reader, "bookID", false, false)) { reader.Read(); BorrowField.bookID = XmlConvert.ToInt32(reader.ReadString()); reader.ReadEndElement(); } reader.ReadEndElement(); } return BorrowField; }