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

rwjdk / TrelloDotNet / 13163656973

05 Feb 2025 06:02PM UTC coverage: 45.486% (-2.7%) from 48.162%
13163656973

push

github

rwjdk
WIP

942 of 2803 branches covered (33.61%)

Branch coverage included in aggregate %.

1 of 456 new or added lines in 6 files covered. (0.22%)

11 existing lines in 4 files now uncovered.

2444 of 4641 relevant lines covered (52.66%)

42.53 hits per line

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

0.0
/src/TrelloDotNet/Model/CardsFilterCondition.cs
1
using System.Collections.Generic;
2
using System;
3
using System.Linq;
4
using System.Runtime.InteropServices;
5

6
namespace TrelloDotNet.Model
7
{
8
    /// <summary>
9
    /// Represent a condition 
10
    /// </summary>
11
    public class CardsFilterCondition
12
    {
13
        private CardsFilterCondition()
×
14
        {
15
            //Empty
16
        }
×
17

18
        internal CardsConditionField Field { get; set; }
×
NEW
19
        internal CustomField CustomFieldEntry { get; set; }
×
20
        internal CardsCondition Condition { get; set; }
×
21

22
        internal DateTimeOffset? ValueAsDateTimeOffset { get; set; }
×
23
        internal List<DateTimeOffset> ValueAsDateTimeOffsets { get; set; }
×
24

25
        internal string ValueAsString { get; set; }
×
26
        internal List<string> ValueAsStrings { get; set; }
×
27

NEW
28
        internal decimal? ValueAsNumber { get; set; }
×
NEW
29
        internal List<decimal> ValueAsNumbers { get; set; }
×
UNCOV
30
        internal bool ValueAsBoolean { get; set; }
×
31

32
        public static CardsFilterCondition CustomField(CustomField customField, CardsConditionString condition, params string[] strings)
33
        {
NEW
34
            List<string> values = null;
×
NEW
35
            string value = null;
×
NEW
36
            if (strings.Length == 1)
×
37
            {
NEW
38
                value = strings[0];
×
39
            }
40
            else
41
            {
NEW
42
                values = strings.ToList();
×
43
            }
44

NEW
45
            return new CardsFilterCondition
×
NEW
46
            {
×
NEW
47
                Field = CardsConditionField.CustomField,
×
NEW
48
                Condition = (CardsCondition)Convert.ToInt32(condition),
×
NEW
49
                ValueAsString = value,
×
NEW
50
                ValueAsStrings = values,
×
NEW
51
                CustomFieldEntry = customField,
×
NEW
52
            };
×
53
        }
54

55
        public static CardsFilterCondition CustomField(CustomField customField, CardsConditionNumber condition, params int[] numbers)
56
        {
NEW
57
            return CustomField(customField, condition, numbers.Select(Convert.ToDecimal).ToArray());
×
58
        }
59

60
        public static CardsFilterCondition CustomField(CustomField customField, CardsConditionNumber condition, params decimal[] numbers)
61
        {
NEW
62
            List<decimal> values = null;
×
NEW
63
            decimal? value = null;
×
NEW
64
            if (numbers.Length == 1)
×
65
            {
NEW
66
                value = numbers[0];
×
67
            }
68
            else
69
            {
NEW
70
                values = numbers.ToList();
×
71
            }
72

NEW
73
            return new CardsFilterCondition
×
NEW
74
            {
×
NEW
75
                Field = CardsConditionField.CustomField,
×
NEW
76
                Condition = (CardsCondition)Convert.ToInt32(condition),
×
NEW
77
                ValueAsNumber = value,
×
NEW
78
                ValueAsNumbers = values,
×
NEW
79
                CustomFieldEntry = customField,
×
NEW
80
            };
×
81
        }
82

83
        public static CardsFilterCondition CustomField(CustomField customField, CardsConditionDate condition, params DateTimeOffset[] dateTimeOffsets)
84
        {
NEW
85
            List<DateTimeOffset> values = null;
×
NEW
86
            DateTimeOffset? value = null;
×
NEW
87
            if (dateTimeOffsets.Length == 1)
×
88
            {
NEW
89
                value = dateTimeOffsets[0];
×
90
            }
91
            else
92
            {
NEW
93
                values = dateTimeOffsets.ToList();
×
94
            }
95

NEW
96
            return new CardsFilterCondition
×
NEW
97
            {
×
NEW
98
                Field = CardsConditionField.CustomField,
×
NEW
99
                Condition = (CardsCondition)Convert.ToInt32(condition),
×
NEW
100
                ValueAsDateTimeOffset = value,
×
NEW
101
                ValueAsDateTimeOffsets = values,
×
NEW
102
                CustomFieldEntry = customField,
×
NEW
103
            };
×
104
        }
105

106
        public static CardsFilterCondition CustomField(CustomField customField, CardsConditionBoolean condition, bool boolean)
107
        {
NEW
108
            return new CardsFilterCondition
×
NEW
109
            {
×
NEW
110
                Field = CardsConditionField.CustomField,
×
NEW
111
                Condition = (CardsCondition)Convert.ToInt32(condition),
×
NEW
112
                ValueAsBoolean = boolean,
×
NEW
113
                CustomFieldEntry = customField,
×
NEW
114
            };
×
115
        }
116

117
        public static CardsFilterCondition IsComplete()
118
        {
NEW
119
            return new CardsFilterCondition
×
NEW
120
            {
×
NEW
121
                Field = CardsConditionField.CustomField,
×
NEW
122
                Condition = CardsCondition.Equal,
×
NEW
123
                ValueAsBoolean = true,
×
NEW
124
            };
×
125
        }
126

127
        public static CardsFilterCondition IsNotComplete()
128
        {
NEW
129
            return new CardsFilterCondition
×
NEW
130
            {
×
NEW
131
                Field = CardsConditionField.CustomField,
×
NEW
132
                Condition = CardsCondition.NotEqual,
×
NEW
133
                ValueAsBoolean = true,
×
NEW
134
            };
×
135
        }
136

137
        public static CardsFilterCondition HasAnyLabel()
138
        {
139
            return new CardsFilterCondition
×
140
            {
×
141
                Field = CardsConditionField.Label,
×
142
                Condition = CardsCondition.HasAnyValue
×
143
            };
×
144
        }
145

146
        public static CardsFilterCondition HasNoLabels()
147
        {
148
            return new CardsFilterCondition
×
149
            {
×
150
                Field = CardsConditionField.Label,
×
151
                Condition = CardsCondition.DoNotHaveAnyValue
×
152
            };
×
153
        }
154

155
        public static CardsFilterCondition ListId(CardsConditionId condition, params string[] listIds)
156
        {
NEW
157
            return AdvancedStringCondition(CardsConditionField.List, (CardsConditionString)Convert.ToInt32(condition), listIds);
×
158
        }
159

160
        public static CardsFilterCondition Name(CardsConditionString condition, params string[] textValues)
161
        {
NEW
162
            return AdvancedStringCondition(CardsConditionField.Name, condition, textValues);
×
163
        }
164

165
        public static CardsFilterCondition HasNoDescription()
166
        {
NEW
167
            return AdvancedNumberCondition(CardsConditionField.Description, CardsConditionNumber.Equal, 0);
×
168
        }
169

170
        public static CardsFilterCondition HasDescription()
171
        {
NEW
172
            return AdvancedNumberCondition(CardsConditionField.Description, CardsConditionNumber.NotEqual, 0);
×
173
        }
174

175
        public static CardsFilterCondition Description(CardsConditionString condition, params string[] textValues)
176
        {
NEW
177
            return AdvancedStringCondition(CardsConditionField.Name, condition, textValues);
×
178
        }
179

180
        public static CardsFilterCondition LabelId(CardsConditionId condition, params string[] labelIds)
181
        {
NEW
182
            return AdvancedStringCondition(CardsConditionField.Label, (CardsConditionString)Convert.ToInt32(condition), labelIds);
×
183
        }
184

185
        public static CardsFilterCondition LabelCount(CardsConditionCount condition, int value)
186
        {
NEW
187
            return AdvancedNumberCondition(CardsConditionField.Label, (CardsConditionNumber)Convert.ToInt32(condition), value);
×
188
        }
189

190
        public static CardsFilterCondition LabelCountBetween(int min, int max)
191
        {
NEW
192
            var decimals = new List<decimal>() { min, max };
×
NEW
193
            return AdvancedNumberCondition(CardsConditionField.Label, CardsConditionNumber.Between, decimals.ToArray());
×
194
        }
195

196
        public static CardsFilterCondition LabelCountNotBetween(int mustBeBelow, int mustBeAbove)
197
        {
NEW
198
            var decimals = new List<decimal>() { mustBeBelow, mustBeAbove };
×
NEW
199
            return AdvancedNumberCondition(CardsConditionField.Label, CardsConditionNumber.NotBetween, decimals.ToArray());
×
200
        }
201

202
        public static CardsFilterCondition HasAnyMember()
203
        {
204
            return new CardsFilterCondition
×
205
            {
×
206
                Field = CardsConditionField.Member,
×
207
                Condition = CardsCondition.HasAnyValue
×
208
            };
×
209
        }
210

211
        public static CardsFilterCondition HasNoMembers()
212
        {
213
            return new CardsFilterCondition
×
214
            {
×
215
                Field = CardsConditionField.Member,
×
216
                Condition = CardsCondition.DoNotHaveAnyValue
×
217
            };
×
218
        }
219

220
        public static CardsFilterCondition MemberId(CardsConditionId condition, params string[] memberIds)
221
        {
NEW
222
            return AdvancedStringCondition(CardsConditionField.Member, (CardsConditionString)Convert.ToInt32(condition), memberIds);
×
223
        }
224

225
        public static CardsFilterCondition MemberCount(CardsConditionCount condition, int value)
226
        {
NEW
227
            return AdvancedNumberCondition(CardsConditionField.Member, (CardsConditionNumber)Convert.ToInt32(condition), value);
×
228
        }
229

230
        public static CardsFilterCondition MemberCountBetween(int min, int max)
231
        {
NEW
232
            var decimals = new List<decimal>() { min, max };
×
NEW
233
            return AdvancedNumberCondition(CardsConditionField.Member, CardsConditionNumber.Between, decimals.ToArray());
×
234
        }
235

236
        public static CardsFilterCondition MemberCountNotBetween(int mustBeBelow, int mustBeAbove)
237
        {
NEW
238
            var decimals = new List<decimal>() { mustBeBelow, mustBeAbove };
×
NEW
239
            return AdvancedNumberCondition(CardsConditionField.Member, CardsConditionNumber.Between, decimals.ToArray());
×
240
        }
241

242
        public static CardsFilterCondition Due(CardsConditionDate condition, bool includeCardsThatAreMarkedAsComplete, params DateTimeOffset[] dateTimeOffset)
243
        {
NEW
244
            return AdvancedDateTimeOffsetCondition(includeCardsThatAreMarkedAsComplete ? CardsConditionField.Due : CardsConditionField.DueWithNoDueComplete, condition, dateTimeOffset);
×
245
        }
246

247
        public static CardsFilterCondition DueBetween(bool includeCardsThatAreMarkedAsComplete, DateTimeOffset from, DateTimeOffset to)
248
        {
NEW
249
            return AdvancedDateTimeOffsetCondition(includeCardsThatAreMarkedAsComplete ? CardsConditionField.Due : CardsConditionField.DueWithNoDueComplete, CardsConditionDate.Between, from, to);
×
250
        }
251

252
        public static CardsFilterCondition DueNotBetween(bool includeCardsThatAreMarkedAsComplete, DateTimeOffset mustBeBefore, DateTimeOffset mustBeAfter)
253
        {
NEW
254
            return AdvancedDateTimeOffsetCondition(includeCardsThatAreMarkedAsComplete ? CardsConditionField.Due : CardsConditionField.DueWithNoDueComplete, CardsConditionDate.NotBetween, mustBeBefore, mustBeAfter);
×
255
        }
256

257
        public static CardsFilterCondition StartBetween(DateTimeOffset from, DateTimeOffset to)
258
        {
NEW
259
            return AdvancedDateTimeOffsetCondition(CardsConditionField.Start, CardsConditionDate.Between, from, to);
×
260
        }
261

262
        public static CardsFilterCondition StartNotBetween(DateTimeOffset mustBefore, DateTimeOffset mustBeAfter)
263
        {
NEW
264
            return AdvancedDateTimeOffsetCondition(CardsConditionField.Start, CardsConditionDate.NotBetween, mustBefore, mustBeAfter);
×
265
        }
266

267
        public static CardsFilterCondition CreatedBetween(DateTimeOffset from, DateTimeOffset to)
268
        {
NEW
269
            return AdvancedDateTimeOffsetCondition(CardsConditionField.Created, CardsConditionDate.Between, from, to);
×
270
        }
271

272
        public static CardsFilterCondition CreatedNotBetween(DateTimeOffset mustBefore, DateTimeOffset mustBeAfter)
273
        {
NEW
274
            return AdvancedDateTimeOffsetCondition(CardsConditionField.Created, CardsConditionDate.NotBetween, mustBefore, mustBeAfter);
×
275
        }
276

277
        public static CardsFilterCondition Overdue()
278
        {
NEW
279
            return new CardsFilterCondition
×
NEW
280
            {
×
NEW
281
                Field = CardsConditionField.DueWithNoDueComplete,
×
NEW
282
                Condition = CardsCondition.LessThanOrEqual,
×
NEW
283
                ValueAsDateTimeOffset = DateTimeOffset.UtcNow
×
NEW
284
            };
×
285
        }
286

287
        public static CardsFilterCondition NotOverdue()
288
        {
NEW
289
            return new CardsFilterCondition
×
NEW
290
            {
×
NEW
291
                Field = CardsConditionField.DueWithNoDueComplete,
×
NEW
292
                Condition = CardsCondition.GreaterThan,
×
NEW
293
                ValueAsDateTimeOffset = DateTimeOffset.UtcNow
×
NEW
294
            };
×
295
        }
296

297
        public static CardsFilterCondition Started()
298
        {
NEW
299
            return new CardsFilterCondition
×
NEW
300
            {
×
NEW
301
                Field = CardsConditionField.Start,
×
NEW
302
                Condition = CardsCondition.LessThanOrEqual,
×
NEW
303
                ValueAsDateTimeOffset = DateTimeOffset.UtcNow
×
NEW
304
            };
×
305
        }
306

307
        public static CardsFilterCondition NotStarted()
308
        {
NEW
309
            return new CardsFilterCondition
×
NEW
310
            {
×
NEW
311
                Field = CardsConditionField.Start,
×
NEW
312
                Condition = CardsCondition.GreaterThan,
×
NEW
313
                ValueAsDateTimeOffset = DateTimeOffset.UtcNow
×
NEW
314
            };
×
315
        }
316

317
        public static CardsFilterCondition HasDueDate(bool includeCardsThatAreMarkedAsComplete)
318
        {
NEW
319
            return new CardsFilterCondition
×
NEW
320
            {
×
NEW
321
                Field = includeCardsThatAreMarkedAsComplete ? CardsConditionField.Due : CardsConditionField.DueWithNoDueComplete,
×
NEW
322
                Condition = CardsCondition.HasAnyValue
×
NEW
323
            };
×
324
        }
325

326
        public static CardsFilterCondition HasNoDueDate()
327
        {
NEW
328
            return new CardsFilterCondition
×
NEW
329
            {
×
NEW
330
                Field = CardsConditionField.Due,
×
NEW
331
                Condition = CardsCondition.DoNotHaveAnyValue
×
NEW
332
            };
×
333
        }
334

335
        public static CardsFilterCondition HasStartDate()
336
        {
NEW
337
            return new CardsFilterCondition
×
NEW
338
            {
×
NEW
339
                Field = CardsConditionField.Start,
×
NEW
340
                Condition = CardsCondition.HasAnyValue
×
NEW
341
            };
×
342
        }
343

344
        public static CardsFilterCondition HasNoStartDate()
345
        {
NEW
346
            return new CardsFilterCondition
×
NEW
347
            {
×
NEW
348
                Field = CardsConditionField.Start,
×
NEW
349
                Condition = CardsCondition.DoNotHaveAnyValue
×
NEW
350
            };
×
351
        }
352

353
        public static CardsFilterCondition Start(CardsConditionDate condition, params DateTimeOffset[] dateTimeOffset)
354
        {
NEW
355
            return AdvancedDateTimeOffsetCondition(CardsConditionField.Start, condition, dateTimeOffset);
×
356
        }
357

358
        public static CardsFilterCondition Created(CardsConditionDate condition, params DateTimeOffset[] dateTimeOffset)
359
        {
NEW
360
            return AdvancedDateTimeOffsetCondition(CardsConditionField.Created, condition, dateTimeOffset);
×
361
        }
362

363
        public static CardsFilterCondition AdvancedStringCondition(CardsConditionField field, CardsConditionString condition, params string[] strings)
364
        {
365
            List<string> values = null;
×
366
            string value = null;
×
367
            if (strings.Length == 1)
×
368
            {
369
                value = strings[0];
×
370
            }
371
            else
372
            {
373
                values = strings.ToList();
×
374
            }
375

376
            return new CardsFilterCondition
×
377
            {
×
378
                Field = field,
×
NEW
379
                Condition = (CardsCondition)Convert.ToInt32(condition),
×
380
                ValueAsStrings = values,
×
381
                ValueAsString = value
×
382
            };
×
383
        }
384

385
        public static CardsFilterCondition AdvancedNumberCondition(CardsConditionField field, CardsConditionNumber condition, params decimal[] numbers)
386
        {
NEW
387
            List<decimal> values = null;
×
NEW
388
            decimal? value = null;
×
NEW
389
            if (numbers.Length == 1)
×
390
            {
NEW
391
                value = numbers[0];
×
392
            }
393
            else
394
            {
NEW
395
                values = numbers.ToList();
×
396
            }
397

NEW
398
            return new CardsFilterCondition
×
NEW
399
            {
×
NEW
400
                Field = field,
×
NEW
401
                Condition = (CardsCondition)Convert.ToInt32(condition),
×
NEW
402
                ValueAsNumbers = values,
×
NEW
403
                ValueAsNumber = value
×
NEW
404
            };
×
405
        }
406

407
        public static CardsFilterCondition AdvancedDateTimeOffsetCondition(CardsConditionField field, CardsConditionDate condition, params DateTimeOffset[] datetimes)
408
        {
NEW
409
            List<DateTimeOffset> values = null;
×
NEW
410
            DateTimeOffset? value = null;
×
NEW
411
            if (datetimes.Length == 1)
×
412
            {
NEW
413
                value = datetimes[0];
×
414
            }
415
            else
416
            {
NEW
417
                values = datetimes.ToList();
×
418
            }
419

420
            return new CardsFilterCondition
×
421
            {
×
422
                Field = field,
×
NEW
423
                Condition = (CardsCondition)Convert.ToInt32(condition),
×
NEW
424
                ValueAsDateTimeOffsets = values,
×
NEW
425
                ValueAsDateTimeOffset = value
×
UNCOV
426
            };
×
427
        }
428
    }
429
}
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

© 2025 Coveralls, Inc