/// <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"];
 }
Example #5
0
 /// <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"];
 }
Example #7
0
 /// <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;
 }
Example #8
0
 /// <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;
 }
Example #9
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;
            }
        }
Example #10
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));
        }