Example #1
0
        /// <summary>
        /// Creates a new instance of the <see cref="Board"/> object.
        /// </summary>
        /// <param name="id">The board's ID.</param>
        /// <param name="auth">(Optional) Custom authorization parameters. When not provided,
        /// <see cref="TrelloAuthorization.Default"/> will be used.</param>
        public Board(string id, TrelloAuthorization auth = null)
        {
            Auth     = auth;
            _context = new BoardContext(id, auth);
            _context.Synchronized += Synchronized;
            Id = id;

            Actions      = new ReadOnlyActionCollection(typeof(Board), () => Id, auth);
            Cards        = new ReadOnlyCardCollection(typeof(Board), () => Id, auth);
            _description = new Field <string>(_context, nameof(Description));
            _isClosed    = new Field <bool?>(_context, nameof(IsClosed));
            _isClosed.AddRule(NullableHasValueRule <bool> .Instance);
            _isSubscribed = new Field <bool?>(_context, nameof(IsSubscribed));
            _isSubscribed.AddRule(NullableHasValueRule <bool> .Instance);
            Labels      = new BoardLabelCollection(() => Id, auth);
            Lists       = new ListCollection(() => Id, auth);
            Members     = new ReadOnlyMemberCollection(EntityRequestType.Board_Read_Members, () => Id, auth);
            Memberships = new BoardMembershipCollection(() => Id, auth);
            _name       = new Field <string>(_context, nameof(Name));
            _name.AddRule(NotNullOrWhiteSpaceRule.Instance);
            _organization       = new Field <Organization>(_context, nameof(Organization));
            PowerUps            = new ReadOnlyPowerUpCollection(() => Id, auth);
            PowerUpData         = new ReadOnlyPowerUpDataCollection(EntityRequestType.Board_Read_PowerUpData, () => Id, auth);
            Preferences         = new BoardPreferences(_context.BoardPreferencesContext);
            PersonalPreferences = new BoardPersonalPreferences(Id, auth);
            _url = new Field <string>(_context, nameof(Url));

            TrelloConfiguration.Cache.Add(this);
        }
Example #2
0
        /// <summary>
        /// Filters a <see cref="ReadOnlyMemberCollection"/> for a given <see cref="MemberFilter"/>s.
        /// </summary>
        /// <param name="members">The <see cref="ReadOnlyMemberCollection"/></param>
        /// <param name="filters">The new <see cref="MemberFilter"/>s by which to filter.</param>
        /// <returns>The filtered collection.</returns>
        /// <remarks>The new filter parameters will function as OR parameters.</remarks>
        public static ReadOnlyMemberCollection Filter(this ReadOnlyMemberCollection members, IEnumerable <MemberFilter> filters)
        {
            var collection = new ReadOnlyMemberCollection(members, members.Auth);

            collection.AddFilter(filters);
            return(collection);
        }
Example #3
0
        /// <summary>
        /// Filters a <see cref="ReadOnlyMemberCollection"/> for a given <see cref="MemberFilter"/>.
        /// </summary>
        /// <param name="members">The <see cref="ReadOnlyMemberCollection"/></param>
        /// <param name="filter">The new <see cref="MemberFilter"/> by which to filter.</param>
        /// <returns>The filtered collection.</returns>
        /// <remarks>The new filter parameter will function as an OR parameter.</remarks>
        public static ReadOnlyMemberCollection Filter(this ReadOnlyMemberCollection members, MemberFilter filter)
        {
            var collection = new ReadOnlyMemberCollection(members, members.Auth);

            collection.AddFilter(new[] { filter });
            return(collection);
        }
 internal ReadOnlyMemberCollection(ReadOnlyMemberCollection source, TrelloAuthorization auth)
     : base(() => source.OwnerId, auth)
 {
     _updateRequestType = source._updateRequestType;
     if (source._additionalParameters != null)
     {
         _additionalParameters = new Dictionary <string, object>(source._additionalParameters);
     }
 }
Example #5
0
        /// <summary>
        /// Creates a new instance of the <see cref="Organization"/> object.
        /// </summary>
        /// <param name="id">The organization's ID.</param>
        /// <param name="auth">(Optional) Custom authorization parameters. When not provided,
        /// <see cref="TrelloAuthorization.Default"/> will be used.</param>
        /// <remarks>
        /// The supplied ID can be either the full ID or the organization's name.
        /// </remarks>
        public Organization(string id, TrelloAuthorization auth = null)
        {
            Id       = id;
            _context = new OrganizationContext(id, auth);
            _context.Synchronized += Synchronized;

            Actions          = new ReadOnlyActionCollection(typeof(Organization), () => Id, auth);
            Boards           = new BoardCollection(typeof(Organization), () => Id, auth);
            _description     = new Field <string>(_context, nameof(Description));
            _displayName     = new Field <string>(_context, nameof(DisplayName));
            _isBusinessClass = new Field <bool>(_context, nameof(IsBusinessClass));
            Members          = new ReadOnlyMemberCollection(EntityRequestType.Organization_Read_Members, () => Id, auth);
            Memberships      = new OrganizationMembershipCollection(() => Id, auth);
            _name            = new Field <string>(_context, nameof(Name));
            _name.AddRule(OrganizationNameRule.Instance);
            Preferences = new OrganizationPreferences(_context.OrganizationPreferencesContext);
            _url        = new Field <string>(_context, nameof(Url));
            _website    = new Field <string>(_context, nameof(Website));
            _website.AddRule(UriRule.Instance);

            TrelloConfiguration.Cache.Add(this);
        }
Example #6
0
        /// <summary>
        /// Creates a new instance of the <see cref="Card"/> object.
        /// </summary>
        /// <param name="id">The card's ID.</param>
        /// <param name="auth">(Optional) Custom authorization parameters. When not provided,
        /// <see cref="TrelloAuthorization.Default"/> will be used.</param>
        /// <remarks>
        /// The supplied ID can be either the full or short ID.
        /// </remarks>
        public Card(string id, TrelloAuthorization auth = null)
        {
            Id       = id;
            _context = new CardContext(id, auth);
            _context.Synchronized += Synchronized;

            Actions     = new ReadOnlyActionCollection(typeof(Card), () => id, auth);
            Attachments = new AttachmentCollection(() => Id, auth);
            Badges      = new Badges(_context.BadgesContext);
            _board      = new Field <Board>(_context, nameof(Board));
            _board.AddRule(NotNullRule <Board> .Instance);
            CheckLists   = new CheckListCollection(this, auth);
            Comments     = new CommentCollection(() => Id, auth);
            _description = new Field <string>(_context, nameof(Description));
            _dueDate     = new Field <DateTime?>(_context, nameof(DueDate));
            _isComplete  = new Field <bool?>(_context, nameof(IsComplete));
            _isArchived  = new Field <bool?>(_context, nameof(IsArchived));
            _isArchived.AddRule(NullableHasValueRule <bool> .Instance);
            _isSubscribed = new Field <bool?>(_context, nameof(IsSubscribed));
            _isSubscribed.AddRule(NullableHasValueRule <bool> .Instance);
            Labels        = new CardLabelCollection(_context, auth);
            _lastActivity = new Field <DateTime?>(_context, nameof(LastActivity));
            _list         = new Field <List>(_context, nameof(List));
            _list.AddRule(NotNullRule <List> .Instance);
            Members = new MemberCollection(EntityRequestType.Card_Read_Members, () => Id, auth);
            _name   = new Field <string>(_context, nameof(Name));
            _name.AddRule(NotNullOrWhiteSpaceRule.Instance);
            _position = new Field <Position>(_context, nameof(Position));
            _position.AddRule(PositionRule.Instance);
            PowerUpData   = new ReadOnlyPowerUpDataCollection(EntityRequestType.Card_Read_PowerUpData, () => Id, auth);
            _shortId      = new Field <int?>(_context, nameof(ShortId));
            _shortUrl     = new Field <string>(_context, nameof(ShortUrl));
            Stickers      = new CardStickerCollection(() => Id, auth);
            _url          = new Field <string>(_context, nameof(Url));
            VotingMembers = new ReadOnlyMemberCollection(EntityRequestType.Card_Read_MembersVoted, () => Id, auth);

            TrelloConfiguration.Cache.Add(this);
        }