Skip to content
This repository was archived by the owner on Aug 10, 2022. It is now read-only.

Commit aeaea8f

Browse files
Resolved JSON Deserialization Exceptions
1 parent 3ce4109 commit aeaea8f

3 files changed

Lines changed: 44 additions & 7 deletions

File tree

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
11
using System.Collections.Generic;
22
using System.Linq;
33
using GitHubReadmeWebTrends.Common;
4+
using Newtonsoft.Json;
45

56
namespace AzureAdvocates.Functions
67
{
78
class CloudAdvocateGitHubContributorModel : CloudAdvocateGitHubUserModel
89
{
9-
public CloudAdvocateGitHubContributorModel(in IEnumerable<RepositoryPullRequest> pullReuests, CloudAdvocateGitHubUserModel cloudAdvocateGitHubUserModel)
10-
: this(pullReuests, cloudAdvocateGitHubUserModel.FullName, cloudAdvocateGitHubUserModel.GitHubUserName, cloudAdvocateGitHubUserModel.MicrosoftAlias, cloudAdvocateGitHubUserModel.MicrosoftTeam)
10+
public CloudAdvocateGitHubContributorModel(IEnumerable<RepositoryPullRequest> pullRequests, CloudAdvocateGitHubUserModel cloudAdvocateGitHubUserModel)
11+
: this(pullRequests, cloudAdvocateGitHubUserModel.FullName, cloudAdvocateGitHubUserModel.GitHubUserName, cloudAdvocateGitHubUserModel.MicrosoftAlias, cloudAdvocateGitHubUserModel.MicrosoftTeam)
1112
{
1213

1314
}
1415

15-
public CloudAdvocateGitHubContributorModel(in IEnumerable<RepositoryPullRequest> pullReuests, in string fullName, in string gitHubUserName, in string microsoftAlias, in string microsoftTeam)
16+
[JsonConstructor]
17+
public CloudAdvocateGitHubContributorModel(IEnumerable<RepositoryPullRequest> pullRequests, string fullName, string gitHubUserName, string microsoftAlias, string microsoftTeam)
1618
: base(fullName, gitHubUserName, microsoftAlias, microsoftTeam)
1719
{
18-
PullRequests = pullReuests.ToList();
20+
PullRequests = pullRequests.ToList(); ;
1921
}
2022

23+
[JsonProperty("pullRequests")]
2124
public IReadOnlyList<RepositoryPullRequest> PullRequests { get; }
2225
}
2326
}

GitHubReadmeWebTrends.Common/Models/CloudAdvocateGitHubUserModel.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
namespace GitHubReadmeWebTrends.Common
1+
using Newtonsoft.Json;
2+
3+
namespace GitHubReadmeWebTrends.Common
24
{
35
public class CloudAdvocateGitHubUserModel
46
{
@@ -10,9 +12,16 @@ public CloudAdvocateGitHubUserModel(in string fullName, in string gitHubUserName
1012
MicrosoftTeam = microsoftTeam;
1113
}
1214

15+
[JsonProperty("fullName")]
1316
public string FullName { get; }
17+
18+
[JsonProperty("gitHubUserName")]
1419
public string GitHubUserName { get; }
20+
21+
[JsonProperty("microsoftAlias")]
1522
public string MicrosoftAlias { get; }
23+
24+
[JsonProperty("microsoftTeam")]
1625
public string MicrosoftTeam { get; }
1726
}
1827
}

GitHubReadmeWebTrends.Common/Models/PullRequest.cs

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
using System;
2+
using Newtonsoft.Json;
3+
24
namespace GitHubReadmeWebTrends.Common
35
{
46
public class PullRequest
57
{
6-
[Newtonsoft.Json.JsonConstructor]
8+
[JsonConstructor]
79
public PullRequest(string id, Uri url, DateTimeOffset createdAt, bool merged, DateTimeOffset? mergedAt, string baseRefName, Author author)
810
: this(id, url, createdAt, merged, mergedAt, baseRefName, author?.Login ?? string.Empty)
911
{
@@ -21,25 +23,48 @@ public PullRequest(string id, Uri uri, DateTimeOffset createdAt, bool merged, Da
2123
Author = author;
2224
}
2325

26+
[JsonProperty("id")]
2427
public string Id { get; }
28+
29+
[JsonProperty("url")]
2530
public Uri Uri { get; }
31+
32+
[JsonProperty("createdAt")]
2633
public DateTimeOffset CreatedAt { get; }
34+
35+
[JsonProperty("merged")]
2736
public bool IsMerged { get; }
37+
38+
[JsonProperty("mergedAt")]
2839
public DateTimeOffset? MergedAt { get; }
40+
41+
[JsonProperty("baseRefName")]
2942
public string BaseRefName { get; }
43+
44+
[JsonProperty("author")]
3045
public string Author { get; }
3146
}
3247

3348
public class RepositoryPullRequest : PullRequest
3449
{
3550
public RepositoryPullRequest(string repositoryName, string repositoryOwner, PullRequest pullRequest)
36-
: base(pullRequest.Id, pullRequest.Uri, pullRequest.CreatedAt, pullRequest.IsMerged, pullRequest.MergedAt, pullRequest.BaseRefName, pullRequest.Author)
51+
: this(repositoryName, repositoryOwner, pullRequest.Id, pullRequest.Uri, pullRequest.CreatedAt, pullRequest.IsMerged, pullRequest.MergedAt, pullRequest.BaseRefName, pullRequest.Author)
52+
{
53+
54+
}
55+
56+
[JsonConstructor]
57+
public RepositoryPullRequest(string repositoryName, string repositoryOwner, string id, Uri url, DateTimeOffset createdAt, bool merged, DateTimeOffset? mergedAt, string baseRefName, string author)
58+
: base(id, url, createdAt, merged, mergedAt, baseRefName, author)
3759
{
3860
RepositoryName = repositoryName;
3961
RepositoryOwner = repositoryOwner;
4062
}
4163

64+
[JsonProperty("repositoryName")]
4265
public string RepositoryName { get; }
66+
67+
[JsonProperty("repositoryOwner")]
4368
public string RepositoryOwner { get; }
4469
}
4570
}

0 commit comments

Comments
 (0)