Skip to content

Commit 74ff886

Browse files
refactor: demo pages
1 parent 37b207a commit 74ff886

13 files changed

Lines changed: 60 additions & 56 deletions

File tree

src/1-Libraries/Application/Dtos/SearchDemoThingsInputDto.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,10 @@ namespace CanBeYours.Application.Dtos;
55

66
public class SearchDemoThingsInputDto : SearchInputDto
77
{
8+
public SearchDemoThingsInputDto()
9+
{
10+
RecordsPerPage = 5;
11+
}
12+
813
public DemoThingType? Type { get; set; }
914
}

src/1-Libraries/Core/Resources/SharedResource.Designer.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/1-Libraries/Core/Resources/SharedResource.fa.resx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,6 @@
145145
<value>همه ی انواع دمو</value>
146146
</data>
147147
<data name="Email" xml:space="preserve">
148-
<value>ایمیل</value>
148+
<value>ایمیل کاربر</value>
149149
</data>
150150
</root>

src/1-Libraries/Core/Resources/SharedResource.resx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,6 @@
145145
<value>All Demo Types</value>
146146
</data>
147147
<data name="Email" xml:space="preserve">
148-
<value>Email</value>
148+
<value>User Email</value>
149149
</data>
150150
</root>
Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
using CanBeYours.Application.Helpers;
2-
using CanBeYours.Core.Domain.DemoThings;
32
using CodeBlock.DevKit.Administration.Domain.Permissions;
4-
using CodeBlock.DevKit.Identity.Domain.Users;
53
using Microsoft.Extensions.DependencyInjection;
64
using MongoDB.Driver;
75

@@ -26,40 +24,4 @@ public static void SeedPermissions(this IServiceProvider serviceProvider)
2624
permissionRepository.Add(newPermission);
2725
}
2826
}
29-
30-
public static void SeedSampleDemoThings(this IServiceProvider serviceProvider)
31-
{
32-
using var serviceScope = serviceProvider.CreateScope();
33-
var dbContext = serviceScope.ServiceProvider.GetService<MainDbContext>();
34-
35-
if (dbContext.DemoThings.Find(_ => true).Any())
36-
return;
37-
38-
var userRepository = serviceScope.ServiceProvider.GetRequiredService<IUserRepository>();
39-
var demoThingRepository = serviceScope.ServiceProvider.GetRequiredService<IDemoThingRepository>();
40-
41-
var user = userRepository.GetListAsync().GetAwaiter().GetResult().First();
42-
43-
var demoThings = new List<DemoThing>
44-
{
45-
DemoThing.Create("Alpha Widget", "A simple starter widget.", DemoThingType.DemoType1, user.Id),
46-
DemoThing.Create("Beta Module", "Second-generation example module.", DemoThingType.DemoType1, user.Id),
47-
DemoThing.Create("Gamma Tool", "Helper tool for demos.", DemoThingType.DemoType3, user.Id),
48-
DemoThing.Create("Delta Feature", "Experimental feature for testing.", DemoThingType.DemoType1, user.Id),
49-
DemoThing.Create("Epsilon Block", "A UI block used in layouts.", DemoThingType.DemoType2, user.Id),
50-
DemoThing.Create("Zeta Component", "Blazor component example.", DemoThingType.DemoType2, user.Id),
51-
DemoThing.Create("Eta Job", "Background job simulator.", DemoThingType.DemoType1, user.Id),
52-
DemoThing.Create("Theta Report", "Analytics report generator.", DemoThingType.DemoType1, user.Id),
53-
DemoThing.Create("Iota API", "Sample REST endpoint scaffold.", DemoThingType.DemoType2, user.Id),
54-
DemoThing.Create("Kappa Function", "Business rule executor.", DemoThingType.DemoType3, user.Id),
55-
};
56-
57-
foreach (var thing in demoThings)
58-
{
59-
// We recreate the demo things only to add a delay and have different creation time for each.
60-
var demoThing = DemoThing.Create(thing.Name, thing.Description, thing.Type, thing.UserId);
61-
demoThingRepository.Add(thing);
62-
Thread.Sleep(10);
63-
}
64-
}
6527
}

src/1-Libraries/Infrastructure/Startup.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,10 @@ public static void AddInfrastructureModule(this IServiceCollection services)
2222
services.AddValidatorsFromAssembly(typeof(Startup).Assembly);
2323
}
2424

25-
public static void UseInfrastructureModule(this IServiceProvider serviceProvider, bool isDevelopmentEnvironment)
25+
public static void UseInfrastructureModule(this IServiceProvider serviceProvider)
2626
{
2727
serviceProvider.MigrateDatabes();
2828
serviceProvider.SeedPermissions();
29-
30-
if (isDevelopmentEnvironment)
31-
serviceProvider.SeedSampleDemoThings();
3229
}
3330

3431
private static void AddMongoDbContext(this IServiceCollection services)

src/2-Clients/AdminPanel/Pages/DemoThings/Components/DemoThings.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
@if (Model == null || !Model.Any())
1616
{
1717
<tr>
18-
<td colspan="5" class="text-center text-muted py-5">
18+
<td colspan="7" class="text-center text-muted py-5">
1919
@CoreLocalizer[CoreResource.No_Items_Found]
2020
</td>
2121
</tr>

src/2-Clients/AdminPanel/Pages/DemoThings/Components/UpdateDemoThing.razor

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,22 @@
11
@using CanBeYours.AdminPanel.Helpers
22
@using CanBeYours.Core.Domain.DemoThings
3+
@using CodeBlock.DevKit.Contracts.Helpers
34

45
<EditForm Model="Input" OnValidSubmit="HandleUpdateDemoThing">
56
<DataAnnotationsValidator />
67

8+
<div class="detail-item-enhanced">
9+
<div class="detail-icon">
10+
<i class="bi bi-person-circle"></i>
11+
</div>
12+
<div class="detail-content">
13+
<label class="detail-label">@SharedLocalizer[SharedResource.Email]</label>
14+
<div class="detail-value">
15+
<a class="text-decoration-none text-primary" href="/user/details/@DemoThingUserId">@DemoThingUserEmail</a>
16+
</div>
17+
</div>
18+
</div>
19+
720
<div class="form-group p-2">
821
<label class="f-sm text-secondary">
922
@SharedLocalizer[SharedResource.DemoThing_Name]:
@@ -34,17 +47,26 @@
3447
</div>
3548

3649
<div class="form-group p-2">
37-
<button type="submit" class="btn f-sm btn-primary mr-1">
50+
<button type="submit" class="btn f-sm btn-success me-2">
3851
@CoreLocalizer[CoreResource.Update]
3952
</button>
53+
@if (CurrentUser.HasPermission(Permissions.Tracking.CHANGES))
54+
{
55+
<a href="/tracking/changes/@DemoThingId" class="btn btn-outline-primary">
56+
<i class="bi bi-clock-history me-2"></i>@CoreLocalizer[CoreResource.Changes_History]
57+
</a>
58+
}
59+
4060
</div>
4161
</EditForm>
4262

4363
@code {
4464
[Parameter]
4565
public string DemoThingId { get; set; }
4666

47-
protected UpdateDemoThingDto Input = new();
67+
private UpdateDemoThingDto Input = new();
68+
private string DemoThingUserId;
69+
private string DemoThingUserEmail;
4870

4971
[CascadingParameter]
5072
protected BlazoredModalInstance ModalInstance { get; set; }
@@ -63,11 +85,14 @@
6385
return;
6486
}
6587

88+
DemoThingUserId = result.Value.UserId;
89+
DemoThingUserEmail = result.Value.UserEmail;
90+
6691
Input = new UpdateDemoThingDto
6792
{
6893
Name = result.Value.Name,
6994
Type = result.Value.Type,
70-
Description = result.Value.Description
95+
Description = result.Value.Description,
7196
};
7297
}
7398

src/2-Clients/AdminPanel/Pages/DemoThings/Index.razor

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@page "/demo-things"
1+
@page "/demo-things"
22
@using CanBeYours.AdminPanel.Helpers
33
@implements IDisposable
44

@@ -8,6 +8,11 @@
88
@AdminPanelLocalizer[AdminPanelResource.DemoThings]
99
</h1>
1010

11+
<div class="alert alert-info">
12+
This demo shows how to implement create, update, search, and pagination for an entity across UI, application, and domain levels.
13+
See the <a href="https://docs.codeblock.dev/" target="_blank" rel="noopener noreferrer">docs</a> for more details.
14+
</div>
15+
1116
<SearchDemoThings SearchChangedCallback="OnSearchChanged" />
1217

1318
@if (IsLoading)

src/2-Clients/AdminPanel/Pages/DemoThings/SubscribedUsersOnly.razor

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
@page "/subscribedusers-only"
2-
@using CodeBlock.DevKit.Contracts.Services
3-
@inject ISubscriptionAccessorService SubscriptionService
2+
@using CodeBlock.DevKit.Subscription.Services.Subscriptions
3+
@inject ISubscriptionService SubscriptionService
44

55
<PageTitle>@AdminPanelLocalizer[AdminPanelResource.SubscribedUsersOnly]</PageTitle>
66

@@ -36,6 +36,16 @@ else
3636

3737
protected override async Task OnInitializedAsync()
3838
{
39-
UserHasAnyActiveSubscription = await SubscriptionService.UserHasAnyActiveSubscription(CurrentUser.GetUserId());
39+
await CheckIfUserHasAnyActiveSubscription();
40+
}
41+
42+
private async Task CheckIfUserHasAnyActiveSubscription()
43+
{
44+
var result = await SubscriptionService.UserHasAnyActiveSubscription(CurrentUser.GetUserId());
45+
46+
if (result.IsSuccess)
47+
UserHasAnyActiveSubscription = result.Value;
48+
else
49+
result.ShowErrorToast(ToastService);
4050
}
4151
}

0 commit comments

Comments
 (0)