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 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 } }; }
/*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 }); } }
//Current implementation only allows for all users to have the same (RU) policy on table. //Otherwise we have to store each policy in DB. public BrokerResult RespondToInvite(IUser user, Guid eventID, bool accept) { bool success = true; if (accept) { string tablename = EIDToEtableName(eventID); success = AuthenticateAndUpdateUser(user, tablename); } if (success) { return(BrokerResult.newSuccess()); } else { return new BrokerResult { type = ResultType.respondError, reason = ErrorReason.remoteAuthFailure } }; }
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 }); } }
public BrokerResult AddToChannel(IUser user, Guid eventId) { AuthenticateAndUpdateUser(user, EIDToEtableName(eventId)); return(BrokerResult.newSuccess()); }