Пример #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Cisco.Spark.Membership"/> class.
 /// </summary>
 /// <param name="room">The Room of the membership.</param>
 /// <param name="person">The person belonging to the membership.</param>
 /// <param name="isModerator">True if this member is a moderator.</param>
 /// /// <param name="isMonitor">True if this member is a monitor.</param>
 public Membership(Room room, Person person, bool isModerator = false, bool isMonitor = false)
 {
     Room = room;
     Person = person;
     IsModerator = isModerator;
     IsMonitor = isMonitor;
 }
Пример #2
0
        /// <summary>
        /// Lists all Memberships matching the given criteria.
        /// </summary>
        /// <param name="error">Error from Spark, if any.</param>
        /// <param name="results">List of Memberships.</param>
        /// <param name="room">The Room to show Memberships for.</param>
        /// <param name="person">The person to show Memberships for.</param>
        /// <param name="max">The maximum number of Memberships to return.</param>
        /// <returns></returns>
        public static IEnumerator ListMemberships(Action<SparkMessage> error, Action<List<Membership>> results, Room room = null, Person person = null, int max = 0)
        {
            var constraints = new Dictionary<string, string>();
            if (room != null)
            {
                constraints.Add("roomId", room.Id);
            }
            else if (person != null)
            {
                constraints.Add("personId", person.Id);
            }

            if (max > 0)
            {
                constraints.Add("max", max.ToString());
            }

            var listObjects = ListObjects<Membership>(constraints, SparkType.Membership, error, results);
            yield return Request.Instance.StartCoroutine(listObjects);
        }
Пример #3
0
 /// <summary>
 /// Creates a new Message posted into a given Room.
 /// </summary>
 /// <param name="room">The Room to post the Message into.</param>
 public Message(Room room)
 {
     Room = room;
     Author = Person.AuthenticatedUser;
 }
Пример #4
0
 /// <summary>
 /// Populates the Membership with data from Spark.
 /// </summary>
 /// <param name="data">Dictionary of Membership data.</param>
 protected override void LoadDict(Dictionary<string, object> data)
 {
     base.LoadDict(data);
     var roomId = data["roomId"] as string;
     Room = new Room(roomId);
     var personId = data["personId"] as string;
     Person = new Person(personId);
     IsModerator = (bool)data["isModerator"];
     IsMonitor = (bool)data["isMonitor"];
 }
Пример #5
0
        protected override void LoadDict(Dictionary<string, object> data)
        {
            base.LoadDict(data);

            // Destination.
            if (data.ContainsKey("roomId"))
            {
                Room = new Room(data["roomId"] as string);
            }
            else if (data.ContainsKey("toPersonId"))
            {
                Recipient = new Person(data["toPersonId"] as string);
            }

            // Author.
            Author = new Person(data["personId"] as string);

            // Message Content (can be blank when uploading files).
            object text;
            if (data.TryGetValue("text", out text))
            {
                Text = text as string;
            }

            object markdown;
            if (data.TryGetValue("markdown", out markdown))
            {
                Markdown = markdown as string;
            }

            object html;
            if (data.TryGetValue("html", out html))
            {
                Html = html as string;
            }

            // Uploaded Files.
            object files;
            if (data.TryGetValue("files", out files))
            {
                var extractedFiles = files as List<object>;
                var tempFiles = new List<SparkFile>();
                foreach (var urlString in extractedFiles)
                {
                    var url = new Uri(urlString as string);
                    tempFiles.Add(new SparkFile(url));
                }
                Files = tempFiles;
            }

            // Mentions
            object mentions;
            if (data.TryGetValue("mentionedPeople", out mentions))
            {
                var extractedIds = mentions as List<object>;
                var tempPeople = new List<Person>();
                foreach (var id in extractedIds)
                {
                    var stringId = id as string;
                    tempPeople.Add(new Person(stringId));
                }
                Mentions = tempPeople;
            }
        }