Example #1
0
        public BrokerResult CreateEventChannel(IEvent theEvent, IUser eventCreator)
        {
            string tableName = ConvertEventToTableName(theEvent);
            string data      = RTStringBuilder.MakeCreateString(tableName);

            try
            {
                var              CreateUrl = Properties.Settings.Default.RTFCreateURL;
                string           response  = MessageConnect.SendRequest(CreateUrl, data);
                CreationResponse creation  = JsonConvert.DeserializeObject <CreationResponse>(response);
                try
                {
                    if (tableName.Equals(creation.data.table))
                    {
                        return(BrokerResult.newSuccess());
                    }
                    throw new Exception("RTF returned table name " + creation.data.table);
                }
                catch (NullReferenceException e)
                {
                    throw new Exception("RTF returned an error Message during table creation: " + creation.error.code + creation.error.message);
                }
            }
            catch (WebException e)
            {
                return(new BrokerResult {
                    type = ResultType.createError, reason = ErrorReason.remoteCreateFailure, Message = e.Message
                });
            }
        }
Example #2
0
        public string JustCreateChannel(string tableName)
        {
            string data      = RTStringBuilder.MakeCreateString(tableName);
            var    CreateUrl = Properties.Settings.Default.RTFCreateURL;

            return(MessageConnect.SendRequest(CreateUrl, data));
        }
Example #3
0
        public BrokerResult CreateEventChannel(Guid eventID, IUser eventCreator)
        {
            string tableName = EIDToEtableName(eventID);
            string data      = RTStringBuilder.MakeCreateString(tableName);

            try
            {
                var CreateUrl = Properties.Settings.Default.RTFCreateURL;

                string creationResult = MessageConnect.SendRequest(CreateUrl, data);
            }
            catch (WebException e)
            {
                return(new BrokerResult {
                    type = ResultType.createError, reason = ErrorReason.remoteCreateFailure, Message = e.Message
                });
            }

            bool creatorOK = AuthenticateAndUpdateUser(eventCreator, tableName);

            if (creatorOK)
            {
                return(BrokerResult.newSuccess());
            }
            else
            {
                return new BrokerResult {
                           type = ResultType.createError, reason = ErrorReason.remoteAuthFailure
                }
            };
        }
Example #4
0
        /// <summary>
        /// 链接
        /// </summary>
        public static IMessage Connect(byte hid)
        {
            MessageConnect msg = new MessageConnect();

            msg.TimeStamp = SystemTime.LowClientNow();
            msg.Hid       = hid;
            msg.State     = 1;

            return(msg);
        }
Example #5
0
        private BrokerResult PutInvite(IUser user, string eventTable, string invitedBy)
        {
            string userToken     = user.Token;
            string userTableName = user.UserChannel;
            string data          = RTStringBuilder.MakeInviteString(userToken, userTableName, eventTable, invitedBy);

            var    putItemURL = Properties.Settings.Default.RTFPutURL;
            string result     = MessageConnect.SendRequest(putItemURL, data);

            return(new BrokerResult {
                type = ResultType.fullsuccess
            });;
        }
Example #6
0
        //Creates a User channel and authenticates. Facade will update user object
        public string CreateUserChannel(IUser user)
        {
            string tableName = UserToTableName(user);
            string data      = RTStringBuilder.MakeCreateString(tableName);
            string createUrl = Properties.Settings.Default.RTFCreateURL;

            MessageConnect.SendRequest(createUrl, data);

            Thread.Sleep(Properties.Settings.Default.RTFCreationSleepTime);

            AuthUser(new List <string>()
            {
                tableName
            }, user.Token);

            //BrokerResult result = BrokerResult.newSuccess();
            //result.Message = tableName;
            return(tableName);
        }
Example #7
0
        /*TODO:
         * 1)DONE
         * 2)write unit tests --sorta done
         * 3)exception handling
         * 4)DONE
         * 5)implement wait for resource busy "creating" state
         */
        private BrokerResult AuthUser(List <string> tableNames, string userToken)
        {
            try
            {
                //bool busy = true;
                string data = RTStringBuilder.MakeAuthString(tableNames, userToken);

                var    AuthUrl = Properties.Settings.Default.RTFAuthURL;
                string result  = MessageConnect.SendRequest(AuthUrl, data);

                return(BrokerResult.newSuccess());
            }
            catch (WebException e)
            {
                return(new BrokerResult {
                    type = ResultType.authError, Message = e.Message
                });
            }
        }
Example #8
0
        //Does not authenticate or wait. Leave to facade.
        public string CreateUserChannel(IUser user)
        {
            string           tableName = ConvertUserToTableName(user);
            string           data      = RTStringBuilder.MakeCreateString(tableName);
            string           createUrl = Properties.Settings.Default.RTFCreateURL;
            string           response  = MessageConnect.SendRequest(createUrl, data);
            CreationResponse creation  = JsonConvert.DeserializeObject <CreationResponse>(response);

            try
            {
                if (tableName.Equals(creation.data.table))
                {
                    return(tableName);
                }
                throw new Exception("RTF returned table name " + creation.data.table);
            }
            catch (NullReferenceException e)
            {
                throw new Exception("RTF returned an error Message during table creation: " + creation.error.code + creation.error.message);
            }
        }
Example #9
0
        public BrokerResult AuthUser(List <string> tableNames, string userToken)
        {
            try
            {
                //bool busy = true;
                string data = RTStringBuilder.MakeAuthString(tableNames, userToken);

                var    AuthUrl = Properties.Settings.Default.RTFAuthURL;
                string result  = MessageConnect.SendRequest(AuthUrl, data);
                Debug.Print(result);
                BooleanResponse response = JsonConvert.DeserializeObject <BooleanResponse>(result);
                if (response.data)
                {
                    return(BrokerResult.newSuccess());
                }
                throw new Exception("RTF returned error " + response.error.message);
            }
            catch (WebException e)
            {
                return(new BrokerResult {
                    type = ResultType.authError, Message = e.Message
                });
            }
        }
Example #10
0
 //Used to allow non-wait during unit tests
 public int CreationSleepTime()
 {
     return(MessageConnect.CreationSleepTime());
 }