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 }); } }
public string JustCreateChannel(string tableName) { string data = RTStringBuilder.MakeCreateString(tableName); var CreateUrl = Properties.Settings.Default.RTFCreateURL; return(MessageConnect.SendRequest(CreateUrl, data)); }
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 } }; }
/// <summary> /// 链接 /// </summary> public static IMessage Connect(byte hid) { MessageConnect msg = new MessageConnect(); msg.TimeStamp = SystemTime.LowClientNow(); msg.Hid = hid; msg.State = 1; return(msg); }
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 });; }
//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); }
/*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 }); } }
//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); } }
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 }); } }
//Used to allow non-wait during unit tests public int CreationSleepTime() { return(MessageConnect.CreationSleepTime()); }