protected override void ExecuteDetails(object context)
        {
            RegisterKeyRequest incoming = (RegisterKeyRequest)context;

            Tuple <bool, string, string, UserKey> result = KeyResourceManager.GetInstance().AddUserKey(incoming.Id, incoming.UserKey);

            if (result.Item1 == true)
            {
                var acknowledgement = new RegisterKeyResponse(result.Item3, result.Item4);
                acknowledgement.Code    = ResponseCodes.SUCCESS;
                acknowledgement.Message = result.Item2;
                var envelope = new Envelope()
                {
                    Message = acknowledgement, EndPoint = RemoteEndPoint
                };
                if (!Send(envelope))
                {
                    Error = "Cannot send back acknowledgement";
                }
            }
            else
            {
                var acknowledgement = new RegisterKeyResponse(result.Item3, result.Item4);
                acknowledgement.Code    = ResponseCodes.FAIL;
                acknowledgement.Message = result.Item2;
                var envelope = new Envelope()
                {
                    Message = acknowledgement, EndPoint = RemoteEndPoint
                };
                if (!Send(envelope))
                {
                    Error = "Cannot send back acknowledgement";
                }
            }
        }
Exemplo n.º 2
0
        protected override void ProcessValidResponse(Envelope env)
        {
            RegisterKeyResponse m = (RegisterKeyResponse)env.Message;

            if (m.Code == ResponseCodes.SUCCESS)
            {
                UserResourceManager.GetInstance().SetUserId(new Guid(m.UserId));
                URM.SetUserKey(m.UserId, m.UserKey);
                MyState = State.Success;
                Console.WriteLine("Conversation Complete");
            }
            else
            {
                MyState = State.Failed;
                Console.WriteLine("Conversation Failed: Server Responded with: " + m.Message);
            }
            return;
        }