@@ -21,6 +21,8 @@ namespace Fossology.Rest.Dotnet
21
21
22
22
using RestSharp ;
23
23
24
+ using JsonSerializer = RestSharp . Serialization . Json . JsonSerializer ;
25
+
24
26
/// <summary>
25
27
/// Client for the SW360 REST API.
26
28
/// </summary>
@@ -30,14 +32,24 @@ public partial class FossologyClient
30
32
/// Gets the folder with the specified id.
31
33
/// </summary>
32
34
/// <param name="id">The identifier.</param>
35
+ /// <param name="groupName">The group name to choose.</param>
33
36
/// <returns>A <see cref="Folder"/> object.</returns>
34
- public Folder GetFolder ( int id )
37
+ public Folder GetFolder ( int id , string groupName = "" )
35
38
{
36
39
Log . Debug ( $ "Getting folder { id } ...") ;
37
40
38
- var result = this . api . Get ( this . Url + $ "/folders/{ id } ") ;
41
+ var request = new RestRequest ( this . Url + $ "/folders/{ id } ", Method . GET ) ;
42
+ request . RequestFormat = DataFormat . Json ;
43
+ request . JsonSerializer = new JsonSerializer ( ) ;
44
+ request . Parameters . Clear ( ) ;
45
+ if ( ! string . IsNullOrEmpty ( groupName ) )
46
+ {
47
+ request . AddHeader ( "groupName" , groupName ) ;
48
+ } // if
49
+
50
+ var response = this . api . Execute ( request ) ;
39
51
var folder = JsonConvert . DeserializeObject < Folder > (
40
- result . Content ,
52
+ response . Content ,
41
53
new JsonSerializerSettings
42
54
{
43
55
NullValueHandling = NullValueHandling . Ignore ,
@@ -48,14 +60,24 @@ public Folder GetFolder(int id)
48
60
/// <summary>
49
61
/// Gets the list of all folders.
50
62
/// </summary>
63
+ /// <param name="groupName">The group name to choose.</param>
51
64
/// <returns>A list of <see cref="Folder"/> objects.</returns>
52
- public IReadOnlyList < Folder > GetFolderList ( )
65
+ public IReadOnlyList < Folder > GetFolderList ( string groupName = "" )
53
66
{
54
67
Log . Debug ( "Getting list of folder..." ) ;
55
68
56
- var result = this . api . Get ( this . Url + "/folders" ) ;
69
+ var request = new RestRequest ( this . Url + $ "/folders", Method . GET ) ;
70
+ request . RequestFormat = DataFormat . Json ;
71
+ request . JsonSerializer = new JsonSerializer ( ) ;
72
+ request . Parameters . Clear ( ) ;
73
+ if ( ! string . IsNullOrEmpty ( groupName ) )
74
+ {
75
+ request . AddHeader ( "groupName" , groupName ) ;
76
+ } // if
77
+
78
+ var response = this . api . Execute ( request ) ;
57
79
var list = JsonConvert . DeserializeObject < List < Folder > > (
58
- result . Content ,
80
+ response . Content ,
59
81
new JsonSerializerSettings
60
82
{
61
83
NullValueHandling = NullValueHandling . Ignore ,
@@ -68,17 +90,28 @@ public IReadOnlyList<Folder> GetFolderList()
68
90
/// </summary>
69
91
/// <param name="folderName">Name of the folder.</param>
70
92
/// <param name="parentFolder">The parent folder.</param>
93
+ /// <param name="description">The folder description (optional).</param>
94
+ /// <param name="groupName">The group name to choose (optional).</param>
71
95
/// <returns>An <see cref="Result"/> object.</returns>
72
96
/// <remarks>
73
97
/// The message property of the result contains the folder id
74
98
/// which is needed for further operations.
75
99
/// </remarks>>
76
- public Result CreateFolder ( string folderName , int parentFolder )
100
+ public Result CreateFolder ( string folderName , int parentFolder , string description = "" , string groupName = "" )
77
101
{
78
102
var request = new RestRequest ( this . Url + "/folders" , Method . POST ) ;
79
103
request . RequestFormat = DataFormat . Json ;
80
104
request . AddHeader ( "parentFolder" , parentFolder . ToString ( ) ) ;
81
105
request . AddHeader ( "folderName" , folderName ) ;
106
+ if ( ! string . IsNullOrEmpty ( description ) )
107
+ {
108
+ request . AddHeader ( "description" , description ) ;
109
+ } // if
110
+
111
+ if ( ! string . IsNullOrEmpty ( groupName ) )
112
+ {
113
+ request . AddHeader ( "groupName" , groupName ) ;
114
+ } // if
82
115
83
116
var resultRaw = this . api . Execute ( request ) ;
84
117
var result = JsonConvert . DeserializeObject < Result > ( resultRaw . Content ) ;
@@ -91,12 +124,22 @@ public Result CreateFolder(string folderName, int parentFolder)
91
124
/// Deletes the folder with the specified id.
92
125
/// </summary>
93
126
/// <param name="id">The identifier.</param>
127
+ /// <param name="groupName">The group name to choose.</param>
94
128
/// <returns>An <see cref="Result"/> object.</returns>
95
- public Result DeleteFolder ( int id )
129
+ public Result DeleteFolder ( int id , string groupName = "" )
96
130
{
97
131
Log . Debug ( $ "Deleting folder { id } ...") ;
98
132
99
- var response = this . api . Delete ( this . Url + $ "/folders/{ id } ") ;
133
+ var request = new RestRequest ( this . Url + $ "/folders/{ id } ", Method . DELETE ) ;
134
+ request . RequestFormat = DataFormat . Json ;
135
+ request . JsonSerializer = new JsonSerializer ( ) ;
136
+ request . Parameters . Clear ( ) ;
137
+ if ( ! string . IsNullOrEmpty ( groupName ) )
138
+ {
139
+ request . AddHeader ( "groupName" , groupName ) ;
140
+ } // if
141
+
142
+ var response = this . api . Execute ( request ) ;
100
143
var result = JsonConvert . DeserializeObject < Result > ( response . Content ) ;
101
144
return result ;
102
145
} // DeleteFolder()
0 commit comments