-
-
Notifications
You must be signed in to change notification settings - Fork 752
Expand file tree
/
Copy pathAddEditExtendedAttributeModal.razor.cs
More file actions
100 lines (92 loc) · 4.28 KB
/
AddEditExtendedAttributeModal.razor.cs
File metadata and controls
100 lines (92 loc) · 4.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
using System;
using System.Threading.Tasks;
using Blazored.FluentValidation;
using BlazorHero.CleanArchitecture.Application.Features.ExtendedAttributes.Commands.AddEdit;
using BlazorHero.CleanArchitecture.Client.Extensions;
using BlazorHero.CleanArchitecture.Client.Infrastructure.Managers.ExtendedAttribute;
using BlazorHero.CleanArchitecture.Domain.Contracts;
using BlazorHero.CleanArchitecture.Domain.Enums;
using BlazorHero.CleanArchitecture.Shared.Constants.Application;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.SignalR.Client;
using MudBlazor;
namespace BlazorHero.CleanArchitecture.Client.Shared.Components
{
public class AddEditExtendedAttributeModalLocalization
{
// for localization
}
public partial class AddEditExtendedAttributeModal<TId, TEntityId, TEntity, TExtendedAttribute>
where TEntity : AuditableEntity<TEntityId>, IEntityWithExtendedAttributes<TExtendedAttribute>, IEntity<TEntityId>
where TExtendedAttribute : AuditableEntityExtendedAttribute<TId, TEntityId, TEntity>, IEntity<TId>
where TId : IEquatable<TId>
{
[Inject] private IExtendedAttributeManager<TId, TEntityId, TEntity, TExtendedAttribute> ExtendedAttributeManager { get; set; }
[CascadingParameter] private HubConnection HubConnection { get; set; }
[CascadingParameter] private MudDialogInstance MudDialog { get; set; }
[Parameter] public AddEditExtendedAttributeCommand<TId, TEntityId, TEntity, TExtendedAttribute> AddEditExtendedAttributeModel { get; set; } = new();
private FluentValidationValidator _fluentValidationValidator;
private bool Validated => _fluentValidationValidator.Validate(options => { options.IncludeAllRuleSets(); });
private MudDatePicker _datePicker;
private MudTimePicker _timePicker;
private bool TimePickerDisabled => AddEditExtendedAttributeModel.Date == null;
public void Cancel()
{
MudDialog.Cancel();
}
private async Task SaveAsync()
{
switch (AddEditExtendedAttributeModel.Type)
{
case EntityExtendedAttributeType.Decimal:
AddEditExtendedAttributeModel.DateTime = null;
AddEditExtendedAttributeModel.Text = null;
AddEditExtendedAttributeModel.Json = null;
break;
case EntityExtendedAttributeType.Text:
AddEditExtendedAttributeModel.Decimal = null;
AddEditExtendedAttributeModel.DateTime = null;
AddEditExtendedAttributeModel.Json = null;
break;
case EntityExtendedAttributeType.DateTime:
AddEditExtendedAttributeModel.DateTime ??= new DateTime(0, 0, 0);
AddEditExtendedAttributeModel.Decimal = null;
AddEditExtendedAttributeModel.Text = null;
AddEditExtendedAttributeModel.Json = null;
break;
case EntityExtendedAttributeType.Json:
AddEditExtendedAttributeModel.Decimal = null;
AddEditExtendedAttributeModel.Text = null;
AddEditExtendedAttributeModel.DateTime = null;
break;
}
var response = await ExtendedAttributeManager.SaveAsync(AddEditExtendedAttributeModel);
if (response.Succeeded)
{
_snackBar.Add(response.Messages[0], Severity.Success);
MudDialog.Close();
}
else
{
foreach (var message in response.Messages)
{
_snackBar.Add(message, Severity.Error);
}
}
await HubConnection.SendAsync(ApplicationConstants.SignalR.SendUpdateDashboard);
}
protected override async Task OnInitializedAsync()
{
await LoadDataAsync();
HubConnection = HubConnection.TryInitialize(_navigationManager, _localStorage);
if (HubConnection.State == HubConnectionState.Disconnected)
{
await HubConnection.StartAsync();
}
}
private async Task LoadDataAsync()
{
await Task.CompletedTask;
}
}
}