/// <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; }
/// <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); }
/// <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; }
/// <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"]; }
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; } }