public void Login(string id) { if (state != InnerState.INITIAL) throw new InvalidOperationException("The user is already logged in!"); IServiceClientProxy proxy = null; try { //using (IServiceClientProxy proxy = new IServiceClientProxy(binding, new ProtocolVersion11())) //{ proxy = new IServiceClientProxy(binding, new ProtocolVersion11()); //login request to the WS LogIn loginRequest = new LogIn() { card_number = id }; LogInResponse response = proxy.LogIn(loginRequest); if (response.LogInResult.FirstName == null) { //show a message and return in the login page Action action = () => { View.ShowLoginPage(); }; View.ShowMessageWithButton(UNREGISTERED_USER_MSG, action); return; } //set the the logged user and show the welcome page LibraryModelSingleton.Instance.User = response.LogInResult; state = InnerState.WELCOME; View.ShowWelcomePage(); //} } catch (Exception) { //show a message and then returns in the login page state = InnerState.INITIAL; View.ShowMessageWithButton(ERROR_MSG, () => { View.ShowLoginPage(); }); } finally { // if (proxy != null) { proxy.Dispose(); } } }
public override object ReadObject(XmlReader reader) { LogIn LogInField = null; if (IsParentStartElement(reader, false, true)) { LogInField = new LogIn(); reader.Read(); if (IsChildStartElement(reader, "card_number", true, false)) { reader.Read(); LogInField.card_number = reader.ReadString(); reader.ReadEndElement(); } reader.ReadEndElement(); } return LogInField; }
public virtual LogInResponse LogIn(LogIn req) { // Create request header String action; action = "http://tempuri.org/IService/LogIn"; WsWsaHeader header; header = new WsWsaHeader(action, null, EndpointAddress, m_version.AnonymousUri, null, null); WsMessage request = new WsMessage(header, req, WsPrefix.None); // Create request serializer LogInDataContractSerializer reqDcs; reqDcs = new LogInDataContractSerializer("LogIn", "http://tempuri.org/"); request.Serializer = reqDcs; request.Method = "LogIn"; // Send service request m_requestChannel.Open(); WsMessage response = m_requestChannel.Request(request); m_requestChannel.Close(); // Process response LogInResponseDataContractSerializer respDcs; respDcs = new LogInResponseDataContractSerializer("LogInResponse", "http://tempuri.org/"); LogInResponse resp; resp = ((LogInResponse)(respDcs.ReadObject(response.Reader))); response.Reader.Dispose(); response.Reader = null; return resp; }