• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

rwjdk / TrelloDotNet / 15715919831

17 Jun 2025 07:01PM UTC coverage: 79.816% (-0.5%) from 80.303%
15715919831

push

github

rwjdk
Version 2.0.6

2539 of 3460 branches covered (73.38%)

Branch coverage included in aggregate %.

27 of 75 new or added lines in 9 files covered. (36.0%)

6 existing lines in 2 files now uncovered.

4480 of 5334 relevant lines covered (83.99%)

107.47 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

53.47
/src/TrelloDotNet/Model/Options/GetListOptions/GetListOptions.cs
1
using System.Collections.Generic;
2
using System.Linq;
3
using TrelloDotNet.Control;
4

5
namespace TrelloDotNet.Model.Options.GetListOptions
6
{
7
    /// <summary>
8
    /// Options on how and what should be included on the cards (Example only a few fields to increase performance or more nested data to avoid more API calls)
9
    /// </summary>
10
    public class GetListOptions
11
    {
12
        /// <summary>
13
        /// All or a comma-separated list of fields. Defaults: badges, checkItemStates, closed, dateLastActivity, desc, descData, due, start, email, idBoard, idChecklists, idLabels, idList, idMembers, idShort, idAttachmentCover, manualCoverAttachment, labels, name, pos, shortUrl, url
14
        /// </summary>
15
        public ListFields ListFields { get; set; }
10✔
16

17
        /// <summary>
18
        /// All or a comma-separated list of fields. Defaults: badges, checkItemStates, closed, dateLastActivity, desc, descData, due, start, email, idBoard, idChecklists, idLabels, idList, idMembers, idShort, idAttachmentCover, manualCoverAttachment, labels, name, pos, shortUrl, url
19
        /// </summary>
20
        public CardFields CardFields { get; set; }
14✔
21

22
        /// <summary>
23
        /// Whether to return Board object the List is on (Default: False)
24
        /// </summary>
25
        public bool IncludeBoard { get; set; }
21✔
26

27
        /// <summary>
28
        /// Whether to return Card on the list is on (Default: None)
29
        /// </summary>
30
        public GetListOptionsIncludeCards IncludeCards { get; set; } = GetListOptionsIncludeCards.None;
21✔
31

32
        /// <summary>
33
        /// What board-fields to include if IncludeBoard are set to True
34
        /// </summary>
35
        public BoardFields BoardFields { get; set; }
13✔
36

37
        /// <summary>
38
        /// What Kind of Lists should be included (All, Closed or Open)]
39
        /// </summary>
40
        public ListFilter? Filter { get; set; }
24✔
41

42
        /// <summary>
43
        /// Order the cards returned by this (only used when multiple cards are returned)
44
        /// </summary>
45
        public CardsOrderBy? CardsOrderBy { get; set; }
10✔
46

47
        /// <summary>
48
        /// Add conditions of which of the data from the call is actually returned (Note: this is in-memory filtering as Trello's API is not able to filter on server-side)
49
        /// </summary>
50
        public List<CardsFilterCondition> CardsFilterConditions { get; set; } = new List<CardsFilterCondition>();
29✔
51

52
        /// <summary>
53
        /// Send these Additional Parameters not supported out-of-the-box (should you need to do something to the query-parameters not yet supported by this API)
54
        /// </summary>
55
        public List<QueryParameter> AdditionalParameters { get; set; } = new List<QueryParameter>();
21✔
56

57
        internal QueryParameter[] GetParameters()
58
        {
59
            List<QueryParameter> parameters = new List<QueryParameter>();
10✔
60
            if (ListFields != null)
10!
61
            {
NEW
62
                parameters.Add(new QueryParameter("fields", string.Join(",", ListFields.Fields)));
×
63
            }
64

65
            if (CardFields != null)
10✔
66
            {
67
                parameters.Add(new QueryParameter("card_fields", string.Join(",", CardFields.Fields)));
1✔
68
            }
69

70
            if (BoardFields != null)
10✔
71
            {
72
                parameters.Add(new QueryParameter("board_fields", string.Join(",", BoardFields.Fields)));
1✔
73
            }
74

75
            parameters.Add(new QueryParameter("board", IncludeBoard));
10✔
76
            parameters.Add(new QueryParameter("cards", IncludeCards.GetJsonPropertyName()));
10✔
77

78
            parameters.AddRange(AdditionalParameters);
10✔
79

80
            return parameters.ToArray();
10✔
81
        }
82

83
        internal void AdjustFieldsBasedOnSelectedOptions()
84
        {
85
            List<CardFieldsType> cardFieldsNeededForFilterAndOrder = new List<CardFieldsType>();
8✔
86
            switch (CardsOrderBy)
8!
87
            {
88
                case Model.CardsOrderBy.StartDateAsc:
89
                case Model.CardsOrderBy.StartDateDesc:
90
                    cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.Start);
×
91
                    break;
×
92
                case Model.CardsOrderBy.DueDateAsc:
93
                case Model.CardsOrderBy.DueDateDesc:
94
                    cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.Due);
×
95
                    break;
×
96
                case Model.CardsOrderBy.NameAsc:
97
                case Model.CardsOrderBy.NameDesc:
98
                    cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.Name);
×
99
                    break;
100
            }
101

102
            if (CardsFilterConditions != null && CardsFilterConditions.Count != 0)
8✔
103
            {
104
                foreach (CardsFilterCondition condition in CardsFilterConditions)
4✔
105
                {
106
                    switch (condition.Field)
1!
107
                    {
108
                        case CardsConditionField.Name:
109
                            cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.Name);
1✔
110
                            break;
1✔
111
                        case CardsConditionField.ListId:
112
                            cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.ListId);
×
113
                            break;
×
114
                        case CardsConditionField.ListName:
115
                            cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.ListId);
×
116
                            break;
×
117
                        case CardsConditionField.LabelId:
118
                        case CardsConditionField.LabelName:
119
                            cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.LabelIds);
×
120
                            cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.Labels);
×
121
                            break;
×
122
                        case CardsConditionField.MemberId:
123
                            cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.MemberIds);
×
124
                            break;
×
125
                        case CardsConditionField.MemberName:
126
                            cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.MemberIds);
×
127
                            break;
×
128
                        case CardsConditionField.Description:
129
                            cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.Description);
×
130
                            break;
×
131
                        case CardsConditionField.Due:
132
                            cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.Due);
×
133
                            break;
×
134
                        case CardsConditionField.DueWithNoDueComplete:
135
                            cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.Due);
×
136
                            cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.DueComplete);
×
137
                            break;
×
138
                        case CardsConditionField.Start:
139
                            cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.Start);
×
140
                            break;
×
141
                        case CardsConditionField.DueComplete:
142
                            cardFieldsNeededForFilterAndOrder.Add(CardFieldsType.DueComplete);
×
143
                            break;
144
                    }
145
                }
146
            }
147

148
            // ReSharper disable once InvertIf
149
            if (cardFieldsNeededForFilterAndOrder.Count > 0)
8✔
150
            {
151
                if (CardFields == null)
1!
152
                {
153
                    CardFields = CardFields.DefaultFields;
×
154
                }
155

156
                foreach (CardFieldsType cardFieldsType in cardFieldsNeededForFilterAndOrder.Distinct())
4✔
157
                {
158
                    CardFields.AddIfMissing(cardFieldsType);
1✔
159
                }
160
            }
161
        }
8✔
162
    }
163
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc