Skip to content

Commit c5f1d95

Browse files
committed
Adding comments
1 parent b951f75 commit c5f1d95

File tree

9 files changed

+198
-27
lines changed

9 files changed

+198
-27
lines changed

SocialCoder.Web/Server/Extensions/ServiceCollectionExtensions.cs

Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,19 @@ namespace SocialCoder.Web.Server.Extensions;
1212

1313
public static class ServiceCollectionExtensions
1414
{
15-
public static void SetupForAdmin(this IServiceCollection services, IConfiguration configuration)
16-
{
17-
18-
}
19-
15+
/// <summary>
16+
/// Configures the database for the application
17+
/// </summary>
18+
/// <remarks>
19+
/// Includes the following:
20+
/// <list type="bullet">
21+
/// <item>Database Context</item>
22+
/// <item>Identity Context</item>
23+
/// <item>Database Developer Page Exception Filter</item>
24+
/// </list>
25+
/// </remarks>
26+
/// <param name="services"></param>
27+
/// <param name="configuration"></param>
2028
private static void SetupDatabase(this IServiceCollection services, IConfiguration configuration)
2129
{
2230
var connectionString = configuration.GetConnectionString("socialcoder");
@@ -60,6 +68,22 @@ private static void SetupDatabase(this IServiceCollection services, IConfigurati
6068
.AddDefaultTokenProviders();
6169
}
6270

71+
/// <summary>
72+
/// Configures the application for production
73+
/// </summary>
74+
/// <remarks>
75+
/// Includes the following:
76+
///
77+
/// <list type="bullet">
78+
/// <item><see cref="SetupDatabase"/></item>
79+
/// <item>Configures Cookie policy</item>
80+
/// <item>Configures Authentication (for providers that have credentials)</item>
81+
/// <item>Adds the various services used within the application</item>
82+
/// <item>Adds the GraphQL Server</item>
83+
/// </list>
84+
/// </remarks>
85+
/// <param name="services"></param>
86+
/// <param name="configuration"></param>
6387
public static void SetupForProduction(this IServiceCollection services, IConfiguration configuration)
6488
{
6589
services.SetupDatabase(configuration);
@@ -156,6 +180,19 @@ public static void SetupForProduction(this IServiceCollection services, IConfigu
156180
.AddSorting();
157181
}
158182

183+
/// <summary>
184+
/// Sets up the application for production.
185+
/// </summary>
186+
/// <remarks>
187+
/// Includes the following:
188+
/// <list type="bullet">
189+
/// <item>Adds Authorization</item>
190+
/// <item>Adds Authentication</item>
191+
/// <item>Maps the GraphQL Endpoint(s)</item>
192+
/// <item>Migrates the Database</item>
193+
/// </list>
194+
/// </remarks>
195+
/// <param name="app"></param>
159196
public static void SetupForProduction(this WebApplication app)
160197
{
161198
app.UseAuthorization();

SocialCoder.Web/Server/Program.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@
3030
{
3131
builder.Services.SetupForProduction(builder.Configuration);
3232
}
33-
else
34-
{
35-
builder.Services.SetupForAdmin(builder.Configuration);
36-
}
3733

3834
var app = builder.Build();
3935

SocialCoder.Web/Server/SeedDb.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace SocialCoder.Web.Server;
99

1010
public static class SeedDb
1111
{
12-
record ExperienceItem(string Name, string ImageUrl);
12+
private record ExperienceItem(string Name, string ImageUrl);
1313

1414
/// <summary>
1515
/// Inject test data into our database!

SocialCoder.Web/Server/Services/AppStateProvider.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
namespace SocialCoder.Web.Server.Services;
22

3+
/// <summary>
4+
/// Used to determine if the application is in setup mode
5+
/// </summary>
36
public class AppStateProvider
47
{
58
public bool IsInSetupMode { get; }

SocialCoder.Web/Server/Services/EncryptedSettingsConfigurationProvider.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55

66
namespace SocialCoder.Web.Server.Services;
77

8+
/// <summary>
9+
/// Acts as a "source" for our encrypted settings file.
10+
/// </summary>
811
public class EncryptedSettingsConfigurationSource : IConfigurationSource
912
{
1013
private readonly IServiceCollection _services;
@@ -24,6 +27,9 @@ public IConfigurationProvider Build(IConfigurationBuilder builder)
2427
}
2528
}
2629

30+
/// <summary>
31+
/// Acts as our "provider" which loads the settings from our encrypted file and adds them into the configuration.
32+
/// </summary>
2733
public class EncryptedSettingsConfigurationProvider : ConfigurationProvider
2834
{
2935
private readonly IDataProtector _protector;
@@ -59,6 +65,11 @@ public override void Load()
5965
}
6066
}
6167

68+
/// <summary>
69+
/// Converts our settings into a flat dictionary where values are ":" delimited.
70+
/// </summary>
71+
/// <param name="settings"></param>
72+
/// <returns></returns>
6273
private IDictionary<string, string?> Flatten(AppSettings? settings)
6374
{
6475
var dict = new Dictionary<string, string?>();

SocialCoder.Web/Server/Services/Implementations/CodeJamService.cs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ public CodeJamService(ApplicationDbContext context, UserManager<ApplicationUser>
2525

2626
#region Administrative
2727

28+
/// <summary>
29+
/// Create a new topic
30+
/// </summary>
31+
/// <param name="topic"></param>
32+
/// <param name="cancellationToken"></param>
33+
/// <returns></returns>
2834
public async Task<ResultOf<CodeJamTopic>> AdminCreateTopic(CodeJamTopic topic,
2935
CancellationToken cancellationToken = default)
3036
{
@@ -42,6 +48,12 @@ public async Task<ResultOf<CodeJamTopic>> AdminCreateTopic(CodeJamTopic topic,
4248
return ResultOf<CodeJamTopic>.Pass(topic);
4349
}
4450

51+
/// <summary>
52+
/// Deletes a topic by ID.
53+
/// </summary>
54+
/// <param name="topicId"></param>
55+
/// <param name="cancellationToken"></param>
56+
/// <returns></returns>
4557
public async Task<ResultOf> Delete(int topicId, CancellationToken cancellationToken = default)
4658
{
4759
var topic = await this._context.CodeJamTopics
@@ -58,6 +70,12 @@ public async Task<ResultOf> Delete(int topicId, CancellationToken cancellationTo
5870
return ResultOf.Pass();
5971
}
6072

73+
/// <summary>
74+
/// Updates a topic
75+
/// </summary>
76+
/// <param name="topic"></param>
77+
/// <param name="cancellationToken"></param>
78+
/// <returns></returns>
6179
public async Task<ResultOf<CodeJamTopic>> AdminUpdateTopic(CodeJamTopic topic, CancellationToken cancellationToken = default)
6280
{
6381
// Just to validate the item does actually exist
@@ -82,6 +100,13 @@ public async Task<ResultOf<CodeJamTopic>> AdminUpdateTopic(CodeJamTopic topic, C
82100
}
83101
#endregion
84102

103+
/// <summary>
104+
/// Register a user for a code jam topic.
105+
/// </summary>
106+
/// <param name="request"></param>
107+
/// <param name="userId"></param>
108+
/// <param name="cancellationToken"></param>
109+
/// <returns></returns>
85110
public async Task<ResultOf<CodeJamViewModel>> Register(CodeJamRegistrationRequest request, string? userId, CancellationToken cancellationToken = default)
86111
{
87112
if (string.IsNullOrEmpty(userId))
@@ -131,6 +156,13 @@ public async Task<ResultOf<CodeJamViewModel>> Register(CodeJamRegistrationReques
131156
return await this.GetTopic(request.TopicId, userId, cancellationToken);
132157
}
133158

159+
/// <summary>
160+
/// Abandon a code jam topic (withdraw from it)
161+
/// </summary>
162+
/// <param name="request"></param>
163+
/// <param name="userId"></param>
164+
/// <param name="cancellationToken"></param>
165+
/// <returns></returns>
134166
public async Task<ResultOf<CodeJamViewModel>> Abandon(CodeJamAbandonRequest request, string? userId, CancellationToken cancellationToken = default)
135167
{
136168
if (string.IsNullOrEmpty(userId))
@@ -177,6 +209,13 @@ on reg.CodeJamTopicId equals topic.Id
177209
return await this.GetTopic(request.TopicId, userId, cancellationToken);
178210
}
179211

212+
/// <summary>
213+
/// Retrieve a topic by ID, and optionally one a specific user is associated with.
214+
/// </summary>
215+
/// <param name="topicId"></param>
216+
/// <param name="userId"></param>
217+
/// <param name="cancellationToken"></param>
218+
/// <returns></returns>
180219
public async Task<ResultOf<CodeJamViewModel>> GetTopic(int topicId, string? userId,
181220
CancellationToken cancellationToken = default)
182221
{

SocialCoder.Web/Server/Services/Implementations/ProfileService.cs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ public ProfileService(ApplicationDbContext context, ILogger<ProfileService> logg
1818
this._logger = logger;
1919
}
2020

21+
/// <summary>
22+
/// Adds a new user experience item to a user account
23+
/// </summary>
24+
/// <param name="request"></param>
25+
/// <param name="cancellationToken"></param>
26+
/// <returns></returns>
2127
public async Task<ResultOf<UserExperience>> AddUserExperience(AddUserExperienceRequest request, CancellationToken cancellationToken = default)
2228
{
2329
// does this user already have an experience item in the database of this item?
@@ -42,6 +48,12 @@ public async Task<ResultOf<UserExperience>> AddUserExperience(AddUserExperienceR
4248
return ResultOf<UserExperience>.Pass(entry);
4349
}
4450

51+
/// <summary>
52+
/// Edits a user's experience item
53+
/// </summary>
54+
/// <param name="request"></param>
55+
/// <param name="cancellationToken"></param>
56+
/// <returns></returns>
4557
public async Task<ResultOf> EditUserExperience(AddUserExperienceRequest request, CancellationToken cancellationToken = default)
4658
{
4759
var existing = await this._context.UserExperiences.FirstOrDefaultAsync(
@@ -59,6 +71,12 @@ public async Task<ResultOf> EditUserExperience(AddUserExperienceRequest request,
5971
return ResultOf.Pass();
6072
}
6173

74+
/// <summary>
75+
/// Removes a user's experience item
76+
/// </summary>
77+
/// <param name="request"></param>
78+
/// <param name="cancellationToken"></param>
79+
/// <returns></returns>
6280
public async Task<ResultOf> RemoveUserExperience(RemoveUserExperienceRequest request, CancellationToken cancellationToken = default)
6381
{
6482
var existing = await this._context.UserExperiences.FirstOrDefaultAsync(
@@ -74,6 +92,12 @@ public async Task<ResultOf> RemoveUserExperience(RemoveUserExperienceRequest req
7492
return ResultOf.Pass();
7593
}
7694

95+
/// <summary>
96+
/// Adds a new user goal to a user account
97+
/// </summary>
98+
/// <param name="request"></param>
99+
/// <param name="cancellationToken"></param>
100+
/// <returns></returns>
77101
public async Task<ResultOf<UserGoal>> AddUserGoal(AddUserGoalRequest request, CancellationToken cancellationToken = default)
78102
{
79103
var entry = new UserGoal
@@ -91,6 +115,12 @@ public async Task<ResultOf<UserGoal>> AddUserGoal(AddUserGoalRequest request, Ca
91115
return ResultOf<UserGoal>.Pass(entry);
92116
}
93117

118+
/// <summary>
119+
/// Edits an existing user goal
120+
/// </summary>
121+
/// <param name="request"></param>
122+
/// <param name="cancellationToken"></param>
123+
/// <returns></returns>
94124
public async Task<ResultOf> EditUserGoal(EditUserGoalRequest request, CancellationToken cancellationToken = default)
95125
{
96126
var existing =
@@ -141,6 +171,12 @@ await this._context.UserGoals.FirstOrDefaultAsync(x => x.Id == request.GoalId &&
141171
return ResultOf.Pass();
142172
}
143173

174+
/// <summary>
175+
/// Deletes a user goal
176+
/// </summary>
177+
/// <param name="request"></param>
178+
/// <param name="cancellationToken"></param>
179+
/// <returns></returns>
144180
public async Task<ResultOf> DeleteUserGoal(DeleteUserGoalRequest request, CancellationToken cancellationToken = default)
145181
{
146182
var existing =
@@ -158,6 +194,12 @@ await this._context.UserGoals.FirstOrDefaultAsync(x => x.UserId == request.UserI
158194
return ResultOf.Pass();
159195
}
160196

197+
/// <summary>
198+
/// Edit a user's profile info
199+
/// </summary>
200+
/// <param name="request"></param>
201+
/// <param name="cancellationToken"></param>
202+
/// <returns></returns>
161203
public async Task<ResultOf> EditProfileInfo(EditProfileInfoRequest request, CancellationToken cancellationToken = default)
162204
{
163205
var existing = await this._context.Users.FirstOrDefaultAsync(x => x.Id == request.UserId, cancellationToken);

0 commit comments

Comments
 (0)