public void EnsureCreateRoom_uses_retry_strategy()
        {
            var payload = new V2RoomAttributes();

            _streamsApi.CreateRoom(payload);
            _apiExecutorMock.Verify(obj => obj.Execute(It.IsAny <Func <V2RoomAttributes, string, V2RoomDetail> >(), payload, "sessionToken"));
        }
Beispiel #2
0
        /// <summary>
        /// Update the attributes of an existing chatroom.
        /// </summary>
        /// <param name="room">The room and the attributes to update.</param>
        /// <returns>The room.</returns>
        public Room UpdateRoom(Room room)
        {
            var keywords = new ObservableCollection <RoomTag>();

            foreach (var keyword in room.Keywords)
            {
                keywords.Add(new RoomTag()
                {
                    Key = keyword.Item1, Value = keyword.Item2
                });
            }
            var v2RoomAttributes = new V2RoomAttributes()
            {
                Name             = room.Name,
                Keywords         = keywords,
                Description      = room.Description,
                MembersCanInvite = room.MembersCanInvite,
                Discoverable     = room.Discoverable,
                Public           = room.Public,
                ReadOnly         = room.ReadOnly,
                CopyProtected    = room.CopyProtected
            };

            try
            {
                var v2RoomDetail = _apiExecutor.Execute(_roomApi.V2UpdateAsync, room.Id, v2RoomAttributes, _authTokens.SessionToken);
                return(RoomFactory.Create(v2RoomDetail));
            }
            catch (Exception e)
            {
                _log?.LogError(0, e, "An error has occured while trying to update a chatroom.");
                throw;
            }
        }
        public void EnsureUpdateRoom_uses_retry_strategy()
        {
            const string id      = "id";
            var          payload = new V2RoomAttributes();

            _streamsApi.UpdateRoom(id, payload);
            _apiExecutorMock.Verify(obj => obj.Execute(It.IsAny <Func <string, V2RoomAttributes, string, V2RoomDetail> >(), id, payload, "sessionToken"));
        }
Beispiel #4
0
        /// <summary>
        /// Update the attributes of an existing chatroom.
        /// </summary>
        /// <param name="room">The room and the attributes to update.</param>
        /// <returns>The room.</returns>
        public Room UpdateRoom(Room room)
        {
            var keywords = new List <RoomTag>();

            foreach (var keyword in room.Keywords)
            {
                keywords.Add(new RoomTag(keyword.Item1, keyword.Item2));
            }
            var v2RoomAttributes = new V2RoomAttributes(room.Name, keywords, room.Description, room.MembersCanInvite, room.Discoverable, room.Public, room.ReadOnly, room.CopyProtected);
            var v2RoomDetail     = _apiExecutor.Execute(_streamsApi.V2RoomIdUpdatePost, room.Id, v2RoomAttributes, _authTokens.SessionToken);

            return(RoomFactory.Create(v2RoomDetail));
        }
Beispiel #5
0
 /// <summary>
 /// Create a new chatroom. If no attributes are specified, the room is created as a
 /// private chatroom.
 /// </summary>
 /// <param name="payload">Room attributes.</param>
 /// <returns>The created room.</returns>
 public V2RoomDetail CreateRoom(V2RoomAttributes payload)
 {
     return(_apiExecutor.Execute(_streamsApi.V2RoomCreatePost, payload, _authTokens.SessionToken));
 }
Beispiel #6
0
 /// <summary>
 /// Update the attributes of an existing chatroom.
 /// </summary>
 /// <param name="id">Room ID.</param>
 /// <param name="payload">Room attributes.</param>
 /// <returns>The room.</returns>
 public V2RoomDetail UpdateRoom(string id, V2RoomAttributes payload)
 {
     return(_apiExecutor.Execute(_streamsApi.V2RoomIdUpdatePost, id, payload, _authTokens.SessionToken));
 }