Skip to content

Commit 9ef2211

Browse files
Merge pull request #5 from ducksoop/feature/add-support-for-more-net-versions
[ADD] Wider Range of .NET support.
2 parents e3da8c7 + 72c014b commit 9ef2211

17 files changed

+271
-239
lines changed

QuickbaseNet.Examples/Program.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using Newtonsoft.Json;
22
using QuickbaseNet.Helpers;
3-
using QuickbaseNet.Models;
43
using QuickbaseNet.Requests;
54
using QuickbaseNet.Services;
65

@@ -10,7 +9,7 @@ internal class Program
109
{
1110
static async Task Main(string[] args)
1211
{
13-
var quickBaseClient = new QuickbaseClient("REALM_NAME", "TOKEN_GOES_HERE");
12+
var quickBaseClient = new QuickbaseClient("diamond", "bztp36_cn6v_0_c5k72hvbvma5mh8xmjgzb4qqsys");
1413
var query = new QuickbaseQueryBuilder()
1514
.From("bmycek2xq")
1615
.Select(3, 7, 14, 75, 150, 157, 354, 355, 367, 538, 539, 540, 541, 542, 543)
Lines changed: 66 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,88 @@
1-
using QuickbaseNet.Models;
1+
using System;
2+
using System.Collections.Generic;
3+
using QuickbaseNet.Models;
24
using QuickbaseNet.Requests;
35

4-
namespace QuickbaseNet.Helpers;
5-
6-
public class QuickbaseCommandBuilder
6+
namespace QuickbaseNet.Helpers
77
{
8-
private string _tableId;
9-
private string _whereClauseForDeletion;
10-
private readonly List<Dictionary<string, FieldValue>> _records = new();
11-
private int[] _fieldsToReturn;
12-
13-
public QuickbaseCommandBuilder ForTable(string tableId)
8+
public class QuickbaseCommandBuilder
149
{
15-
_tableId = tableId;
16-
return this;
17-
}
10+
private string _tableId;
11+
private string _whereClauseForDeletion;
12+
private readonly List<Dictionary<string, FieldValue>> _records = new List<Dictionary<string, FieldValue>>();
13+
private int[] _fieldsToReturn;
1814

19-
public QuickbaseCommandBuilder ReturnFields(params int[] fieldIds)
20-
{
21-
_fieldsToReturn = fieldIds;
22-
return this;
23-
}
15+
public QuickbaseCommandBuilder ForTable(string tableId)
16+
{
17+
_tableId = tableId;
18+
return this;
19+
}
2420

25-
public QuickbaseCommandBuilder AddNewRecord(Action<RecordBuilder> config)
26-
{
27-
var recordBuilder = new RecordBuilder();
28-
config(recordBuilder);
29-
_records.Add(recordBuilder.Build());
30-
return this;
31-
}
21+
public QuickbaseCommandBuilder ReturnFields(params int[] fieldIds)
22+
{
23+
_fieldsToReturn = fieldIds;
24+
return this;
25+
}
3226

33-
public QuickbaseCommandBuilder UpdateRecord(int recordId, Action<RecordBuilder> config)
34-
{
35-
var recordBuilder = new RecordBuilder();
36-
config(recordBuilder);
27+
public QuickbaseCommandBuilder AddNewRecord(Action<RecordBuilder> config)
28+
{
29+
var recordBuilder = new RecordBuilder();
30+
config(recordBuilder);
31+
_records.Add(recordBuilder.Build());
32+
return this;
33+
}
3734

38-
// Assuming '3' is the default key field ID for record ID
39-
recordBuilder.AddField("3", recordId.ToString());
40-
_records.Add(recordBuilder.Build());
41-
return this;
42-
}
35+
public QuickbaseCommandBuilder UpdateRecord(int recordId, Action<RecordBuilder> config)
36+
{
37+
var recordBuilder = new RecordBuilder();
38+
config(recordBuilder);
4339

40+
// Assuming '3' is the default key field ID for record ID
41+
recordBuilder.AddField("3", recordId.ToString());
42+
_records.Add(recordBuilder.Build());
43+
return this;
44+
}
4445

45-
public QuickbaseCommandBuilder WithDeletionCriteria(string whereClause)
46-
{
47-
_whereClauseForDeletion = whereClause;
48-
return this;
49-
}
5046

51-
public InsertOrUpdateRecordRequest BuildInsertUpdateCommand()
52-
{
53-
return new InsertOrUpdateRecordRequest
47+
public QuickbaseCommandBuilder WithDeletionCriteria(string whereClause)
5448
{
55-
To = _tableId,
56-
Data = _records,
57-
FieldsToReturn = _fieldsToReturn
58-
};
59-
}
49+
_whereClauseForDeletion = whereClause;
50+
return this;
51+
}
6052

61-
public DeleteRecordRequest BuildDeleteCommand()
62-
{
63-
return new DeleteRecordRequest
53+
public InsertOrUpdateRecordRequest BuildInsertUpdateCommand()
6454
{
65-
From = _tableId,
66-
Where = _whereClauseForDeletion
67-
};
68-
}
69-
70-
public class RecordBuilder
71-
{
72-
private readonly Dictionary<string, FieldValue> _fields = new();
55+
return new InsertOrUpdateRecordRequest
56+
{
57+
To = _tableId,
58+
Data = _records,
59+
FieldsToReturn = _fieldsToReturn
60+
};
61+
}
7362

74-
public RecordBuilder AddField(string fieldId, string value)
63+
public DeleteRecordRequest BuildDeleteCommand()
7564
{
76-
_fields[fieldId] = new FieldValue { Value = value };
77-
return this;
65+
return new DeleteRecordRequest
66+
{
67+
From = _tableId,
68+
Where = _whereClauseForDeletion
69+
};
7870
}
7971

80-
public Dictionary<string, FieldValue> Build()
72+
public class RecordBuilder
8173
{
82-
return _fields;
74+
private readonly Dictionary<string, FieldValue> _fields = new Dictionary<string, FieldValue>();
75+
76+
public RecordBuilder AddField(string fieldId, string value)
77+
{
78+
_fields[fieldId] = new FieldValue { Value = value };
79+
return this;
80+
}
81+
82+
public Dictionary<string, FieldValue> Build()
83+
{
84+
return _fields;
85+
}
8386
}
8487
}
8588
}
Lines changed: 50 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,64 @@
1-
using QuickbaseNet.Models;
1+
using System.Collections.Generic;
2+
using System.Linq;
3+
using QuickbaseNet.Models;
24
using QuickbaseNet.Requests;
35

4-
namespace QuickbaseNet.Helpers;
5-
6-
public class QuickbaseQueryBuilder
6+
namespace QuickbaseNet.Helpers
77
{
8-
private string _from;
9-
private List<int> _select;
10-
private string _where;
11-
private List<SortByItem> _sortBy;
12-
private List<GroupByItem> _groupBy;
13-
14-
public QuickbaseQueryBuilder From(string from)
8+
public class QuickbaseQueryBuilder
159
{
16-
_from = from;
17-
return this;
18-
}
10+
private string _from;
11+
private List<int> _select;
12+
private string _where;
13+
private List<SortByItem> _sortBy;
14+
private List<GroupByItem> _groupBy;
1915

20-
public QuickbaseQueryBuilder Select(params int[] fields)
21-
{
22-
_select = fields.ToList();
23-
return this;
24-
}
16+
public QuickbaseQueryBuilder From(string from)
17+
{
18+
_from = from;
19+
return this;
20+
}
2521

26-
public QuickbaseQueryBuilder Where(string where)
27-
{
28-
_where = where;
29-
return this;
30-
}
22+
public QuickbaseQueryBuilder Select(params int[] fields)
23+
{
24+
_select = fields.ToList();
25+
return this;
26+
}
3127

32-
public QuickbaseQueryBuilder SortBy(int fieldId, string order)
33-
{
34-
if (_sortBy == null)
35-
_sortBy = new List<SortByItem>();
28+
public QuickbaseQueryBuilder Where(string where)
29+
{
30+
_where = where;
31+
return this;
32+
}
3633

37-
_sortBy.Add(new SortByItem { FieldId = fieldId, Order = order });
38-
return this;
39-
}
34+
public QuickbaseQueryBuilder SortBy(int fieldId, string order)
35+
{
36+
if (_sortBy == null)
37+
_sortBy = new List<SortByItem>();
4038

41-
public QuickbaseQueryBuilder GroupBy(int fieldId, string grouping)
42-
{
43-
if (_groupBy == null)
44-
_groupBy = new List<GroupByItem>();
39+
_sortBy.Add(new SortByItem { FieldId = fieldId, Order = order });
40+
return this;
41+
}
4542

46-
_groupBy.Add(new GroupByItem { FieldId = fieldId, Grouping = grouping });
47-
return this;
48-
}
43+
public QuickbaseQueryBuilder GroupBy(int fieldId, string grouping)
44+
{
45+
if (_groupBy == null)
46+
_groupBy = new List<GroupByItem>();
4947

50-
public QuickbaseQueryRequest Build()
51-
{
52-
return new QuickbaseQueryRequest
48+
_groupBy.Add(new GroupByItem { FieldId = fieldId, Grouping = grouping });
49+
return this;
50+
}
51+
52+
public QuickbaseQueryRequest Build()
5353
{
54-
From = _from,
55-
Select = _select,
56-
Where = _where,
57-
SortBy = _sortBy,
58-
GroupBy = _groupBy
59-
};
54+
return new QuickbaseQueryRequest
55+
{
56+
From = _from,
57+
Select = _select,
58+
Where = _where,
59+
SortBy = _sortBy,
60+
GroupBy = _groupBy
61+
};
62+
}
6063
}
6164
}

QuickbaseNet/Models/Field.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
using Newtonsoft.Json;
2-
using System.Text.Json.Serialization;
32

4-
namespace QuickbaseNet.Models;
5-
6-
public class Field
3+
namespace QuickbaseNet.Models
74
{
8-
[JsonProperty("id")]
9-
public int Id { get; set; }
10-
[JsonProperty("label")]
11-
public string Label { get; set; }
12-
[JsonProperty("type")]
13-
public string Type { get; set; }
5+
public class Field
6+
{
7+
[JsonProperty("id")]
8+
public int Id { get; set; }
9+
[JsonProperty("label")]
10+
public string Label { get; set; }
11+
[JsonProperty("type")]
12+
public string Type { get; set; }
13+
}
1414
}

QuickbaseNet/Models/FieldValue.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
using Newtonsoft.Json;
2-
using System.Text.Json.Serialization;
32

4-
namespace QuickbaseNet.Models;
5-
6-
public class FieldValue
3+
namespace QuickbaseNet.Models
74
{
8-
[JsonProperty("value")]
9-
public dynamic Value { get; set; }
5+
public class FieldValue
6+
{
7+
[JsonProperty("value")]
8+
public dynamic Value { get; set; }
9+
}
1010
}

QuickbaseNet/Models/GroupByItem.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
using Newtonsoft.Json;
2-
using System.Text.Json.Serialization;
32

4-
namespace QuickbaseNet.Models;
5-
6-
public class GroupByItem
3+
namespace QuickbaseNet.Models
74
{
8-
[JsonProperty("fieldId")]
9-
public int FieldId { get; set; }
10-
[JsonProperty("grouping")]
11-
public string Grouping { get; set; }
5+
public class GroupByItem
6+
{
7+
[JsonProperty("fieldId")]
8+
public int FieldId { get; set; }
9+
[JsonProperty("grouping")]
10+
public string Grouping { get; set; }
11+
}
1212
}

QuickbaseNet/Models/Metadata.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
using System.Text.Json.Serialization;
2-
using Newtonsoft.Json;
1+
using Newtonsoft.Json;
32

4-
namespace QuickbaseNet.Models;
5-
6-
public class Metadata
3+
namespace QuickbaseNet.Models
74
{
8-
[JsonProperty("totalRecords")]
9-
public int TotalRecords { get; set; }
10-
[JsonProperty("numRecords")]
11-
public int NumRecords { get; set; }
12-
[JsonProperty("numFields")]
13-
public int NumFields { get; set; }
14-
[JsonProperty("skip")]
15-
public int Skip { get; set; }
5+
public class Metadata
6+
{
7+
[JsonProperty("totalRecords")]
8+
public int TotalRecords { get; set; }
9+
[JsonProperty("numRecords")]
10+
public int NumRecords { get; set; }
11+
[JsonProperty("numFields")]
12+
public int NumFields { get; set; }
13+
[JsonProperty("skip")]
14+
public int Skip { get; set; }
15+
}
1616
}

0 commit comments

Comments
 (0)