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(); }
            }
        }
Example #2
0
 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;
        }