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

rwjdk / TrelloDotNet / 5986049453

26 Aug 2023 05:15PM UTC coverage: 70.85% (-0.2%) from 71.075%
5986049453

push

github

rwjdk
Added GetCommentReactions

825 of 1493 branches covered (0.0%)

Branch coverage included in aggregate %.

14 of 14 new or added lines in 4 files covered. (100.0%)

2077 of 2603 relevant lines covered (79.79%)

63.13 hits per line

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

0.0
/TrelloDotNet/TrelloDotNet/TrelloClient.Search.cs
1
using System.Collections.Generic;
2
using System.Threading;
3
using System.Threading.Tasks;
4
using TrelloDotNet.Model;
5
using TrelloDotNet.Model.Search;
6

7
namespace TrelloDotNet
8
{
9
    public partial class TrelloClient
10
    {
11
        /// <summary>
12
        /// Search Trello for Cards, Boards, and/or Organizations
13
        /// </summary>
14
        /// <remarks>
15
        /// Search-tips: https://blog.trello.com/the-secrets-of-superior-trello-searches
16
        /// </remarks>
17
        /// <param name="searchRequest">The Search Request</param>
18
        /// <param name="cancellationToken">CancellationToken</param>
19
        /// <returns>The Search-result</returns>
20
        public async Task<SearchResult> SearchAsync(SearchRequest searchRequest, CancellationToken cancellationToken = default)
21
        {
22
            List<string> modelTypes = new List<string>();
×
23
            if (searchRequest.SearchOrganizations)
×
24
            {
25
                modelTypes.Add("organizations");
×
26
            }
27
            if (searchRequest.SearchBoards)
×
28
            {
29
                modelTypes.Add("boards");
×
30
            }
31
            if (searchRequest.SearchCards)
×
32
            {
33
                modelTypes.Add("cards");
×
34
            }
35

36

37
            var parameters = new List<QueryParameter>
×
38
            {
×
39
                new QueryParameter("query", searchRequest.SearchTerm),
×
40
                new QueryParameter("partial", searchRequest.PartialSearch),
×
41
                new QueryParameter("modelTypes", string.Join(",", modelTypes))
×
42
            };
×
43

44
            #region Boards-options
45
            if (searchRequest.BoardFilter != null)
×
46
            {
47
                parameters.Add(new QueryParameter("idBoards", string.Join(",", searchRequest.BoardFilter.BoardIds)));
×
48
            }
49

50
            if (searchRequest.BoardFields != null)
×
51
            {
52
                parameters.Add(new QueryParameter("board_fields", string.Join(",", searchRequest.BoardFields.FieldNames)));
×
53
            }
54

55
            if (searchRequest.BoardLimit.HasValue)
×
56
            {
57
                parameters.Add(new QueryParameter("boards_limit", searchRequest.BoardLimit.Value));
×
58
            }
59
            #endregion
60

61
            #region Organization-options
62
            if (searchRequest.OrganizationFilter != null)
×
63
            {
64
                parameters.Add(new QueryParameter("idOrganizations", string.Join(",", searchRequest.OrganizationFilter.OrganizationIds)));
×
65
            }
66
            #endregion
67

68
            #region Card-options
69
            if (searchRequest.CardFilter != null)
×
70
            {
71
                parameters.Add(new QueryParameter("idCards", string.Join(",", searchRequest.CardFilter.CardIds)));
×
72
            }
73

74
            if (searchRequest.CardFields != null)
×
75
            {
76
                parameters.Add(new QueryParameter("card_fields", string.Join(",", searchRequest.CardFields.FieldNames)));
×
77
            }
78

79
            if (searchRequest.CardLimit.HasValue)
×
80
            {
81
                parameters.Add(new QueryParameter("cards_limit", searchRequest.CardLimit.Value));
×
82
            }
83
            
84
            if (searchRequest.CardPage.HasValue)
×
85
            {
86
                parameters.Add(new QueryParameter("cards_page", searchRequest.CardPage.Value));
×
87
            }
88
            #endregion
89

90
            return await _apiRequestController.Get<SearchResult>(UrlPaths.Search, cancellationToken, parameters.ToArray());
×
91
        }
×
92

93
        /// <summary>
94
        /// Search Members across Trello
95
        /// </summary>
96
        /// <param name="searchRequest">The Search-request</param>
97
        /// <param name="cancellationToken">CancellationToken</param>
98
        /// <returns>The List of Members from the search</returns>
99
        public async Task<List<Member>> SearchMembersAsync(SearchMemberRequest searchRequest, CancellationToken cancellationToken = default)
100
        {
101
            List<QueryParameter> parameters = new List<QueryParameter>
×
102
            {
×
103
                new QueryParameter("query", searchRequest.SearchTerm),
×
104
                new QueryParameter("onlyOrgMembers", searchRequest.OnlyOrgMembersFilter)
×
105
            };
×
106

107
            if (searchRequest.Limit.HasValue)
×
108
            {
109
                parameters.Add(new QueryParameter("limit", searchRequest.Limit.Value));
×
110
            }
111

112
            if (!string.IsNullOrWhiteSpace(searchRequest.BoardIdFilter))
×
113
            {
114
                parameters.Add(new QueryParameter("idBoard", searchRequest.BoardIdFilter));
×
115
            }
116

117
            if (!string.IsNullOrWhiteSpace(searchRequest.OrganizationIdFilter))
×
118
            {
119
                parameters.Add(new QueryParameter("idOrganization", searchRequest.OrganizationIdFilter));
×
120
            }
121

122
            return await _apiRequestController.Get<List<Member>>($"{UrlPaths.Search}/{UrlPaths.Members}", cancellationToken, parameters.ToArray());
×
123
        }
×
124
    }
125
}
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