/// <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 TeamMemberships matching the given criteria. /// </summary> /// <param name="error">Error from Spark, if any.</param> /// <param name="results">List of TeamMemberships.</param> /// <param name="team">The Team to show TeamMemberships for.</param> /// <param name="person">The Person to show TeamMemberships for.</param> /// <param name="max">The maximum number of TeamMemberships to return.</param> /// <returns></returns> public static IEnumerator ListTeamMemberships(Action<SparkMessage> error, Action<List<TeamMembership>> results, Team team = null, Person person = null, int max = 0) { var constraints = new Dictionary<string, string>(); if (team != null) { constraints.Add("teamId", team.Id); } else if (person != null) { constraints.Add("personId", person.Id); } if (max > 0) { constraints.Add("max", max.ToString()); } var listObjects = ListObjects<TeamMembership>(constraints, SparkType.TeamMembership, error, results); yield return Request.Instance.StartCoroutine(listObjects); }
/// <summary> /// Initializes a new instance of the <see cref="Cisco.Spark.TeamMembership"/> class. /// </summary> /// <param name="team">The Team of the TeamMembership.</param> /// <param name="person">The person belonging to the TeamMembership.</param> /// <param name="isModerator">True if this member will be a moderator.</param> public TeamMembership(Team team, Person person, bool isModerator = false) { Team = team; Person = person; IsModerator = isModerator; }
/// <summary> /// Populates the TeamMembership with data from Spark. /// </summary> /// <param name="data">Dictionary of TeamMembership data.</param> protected override void LoadDict(Dictionary<string, object> data) { base.LoadDict(data); var teamId = data["teamId"] as string; Team = new Team(teamId); var personId = data["personId"] as string; Person = new Person(personId); IsModerator = (bool)data["isModerator"]; }
/// <summary> /// Populates an object with data retrieved from Spark. /// </summary> /// <param name="data">Data.</param> protected override void LoadDict(Dictionary<string, object> data) { base.LoadDict(data); Title = data["title"] as string; Type = RoomTypeExtensions.FromApi(data["type"] as string); IsLocked = (bool)data["isLocked"]; LastActivity = DateTime.Parse(data["lastActivity"] as string); Creator = new Person(data["creatorId"] as string); }
/// <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"]; }
/// <summary> /// Sets <see cref="AuthenticatedUser"/> to the currently authenticated user. /// </summary> /// <param name="error">Error from Spark, if any.</param> /// <param name="success">True if the operation completed successfully.</param> public static IEnumerator GetMyself(Action<SparkMessage> error, Action<bool> success) { var getRecordRoutine = Request.Instance.GetRecord("me", SparkType.Person, error, dict => { var id = dict["id"] as string; AuthenticatedUser = new Person(id); AuthenticatedUser.LoadDict(dict); success(true); }); yield return getRecordRoutine; }
/// <summary> /// Creates a new Message sent to a given Person via a 1:1 / Direct Room. /// </summary> /// <param name="person">The Person to send the Message to.</param> public Message(Person person) { Recipient = person; Author = Person.AuthenticatedUser; }
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; } }
/// <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)); }