Sistemati filtri
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
@using salesbook.Shared.Core.Messages.Contact
|
||||
@inject IManageDataService ManageData
|
||||
@inject NewContactService NewContact
|
||||
@inject FilterUserDTO Filter
|
||||
|
||||
<HeaderLayout Title="Contatti"/>
|
||||
|
||||
@@ -27,7 +28,7 @@
|
||||
|
||||
<MudChipSet Class="mt-2" T="string" @bind-SelectedValue="TypeUser" @bind-SelectedValue:after="FilterUsers" SelectionMode="SelectionMode.SingleSelection">
|
||||
<MudChip Color="Color.Primary" Variant="Variant.Text" Value="@("all")">Tutti</MudChip>
|
||||
<MudChip Color="Color.Primary" Variant="Variant.Text" Value="@("contact")">Contatti</MudChip>
|
||||
<MudChip Color="Color.Primary" Variant="Variant.Text" Value="@("contact")">Clienti</MudChip>
|
||||
<MudChip Color="Color.Primary" Variant="Variant.Text" Value="@("prospect")">Prospect</MudChip>
|
||||
</MudChipSet>
|
||||
</div>
|
||||
@@ -64,12 +65,12 @@
|
||||
//Filtri
|
||||
private string? TextToFilter { get; set; }
|
||||
private bool OpenFilter { get; set; }
|
||||
private FilterUserDTO Filter { get; set; } = new();
|
||||
private string TypeUser { get; set; } = "all";
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
NewContact.OnContactCreated += async activityId => await OnActivityCreated(activityId);
|
||||
NewContact.OnContactCreated += async response => await OnUserCreated(response);
|
||||
Console.WriteLine($"Filter HashCode: {Filter.GetHashCode()} - IsInitialized: {Filter.IsInitialized}");
|
||||
}
|
||||
|
||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
@@ -85,10 +86,15 @@
|
||||
IsLoading = true;
|
||||
StateHasChanged();
|
||||
|
||||
var loggedUser = (await ManageData.GetTable<StbUser>(x => x.UserName.Equals(UserSession.User.Username))).Last();
|
||||
if (!Filter.IsInitialized)
|
||||
{
|
||||
var loggedUser = (await ManageData.GetTable<StbUser>(x => x.UserName.Equals(UserSession.User.Username))).Last();
|
||||
|
||||
if (loggedUser.UserCode != null)
|
||||
Filter.Agenti = [loggedUser.UserCode];
|
||||
if (loggedUser.UserCode != null)
|
||||
Filter.Agenti = [loggedUser.UserCode];
|
||||
|
||||
Filter.IsInitialized = true;
|
||||
}
|
||||
|
||||
var users = await ManageData.GetContact();
|
||||
|
||||
@@ -105,7 +111,6 @@
|
||||
GroupedUserList = [];
|
||||
|
||||
string? lastHeader = null;
|
||||
|
||||
foreach (var user in sortedUsers)
|
||||
{
|
||||
var firstChar = char.ToUpper(user.RagSoc[0]);
|
||||
@@ -128,6 +133,7 @@
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
|
||||
private class UserDisplayItem
|
||||
{
|
||||
public required ContactDTO User { get; set; }
|
||||
@@ -158,10 +164,18 @@
|
||||
}
|
||||
|
||||
var matchesFilter =
|
||||
(Filter.Prov.IsNullOrEmpty() || user.Prov.Equals(Filter.Prov, StringComparison.OrdinalIgnoreCase)) &&
|
||||
(Filter.Citta.IsNullOrEmpty() || user.Citta.Contains(Filter.Citta!, StringComparison.OrdinalIgnoreCase)) &&
|
||||
(Filter.Nazione.IsNullOrEmpty() || user.Nazione.Contains(Filter.Nazione!, StringComparison.OrdinalIgnoreCase)) &&
|
||||
(Filter.Indirizzo.IsNullOrEmpty() || user.Indirizzo.Contains(Filter.Indirizzo!, StringComparison.OrdinalIgnoreCase)) &&
|
||||
(Filter.Prov.IsNullOrEmpty() ||
|
||||
(!string.IsNullOrEmpty(user.Prov) &&
|
||||
user.Prov.Trim().Contains(Filter.Prov!.Trim(), StringComparison.OrdinalIgnoreCase))) &&
|
||||
(Filter.Citta.IsNullOrEmpty() ||
|
||||
(!string.IsNullOrEmpty(user.Citta) &&
|
||||
user.Citta.Trim().Contains(Filter.Citta!.Trim(), StringComparison.OrdinalIgnoreCase))) &&
|
||||
(Filter.Nazione.IsNullOrEmpty() ||
|
||||
(!string.IsNullOrEmpty(user.Nazione) &&
|
||||
user.Nazione.Trim().Contains(Filter.Nazione!.Trim(), StringComparison.OrdinalIgnoreCase))) &&
|
||||
(Filter.Indirizzo.IsNullOrEmpty() ||
|
||||
(!string.IsNullOrEmpty(user.Indirizzo) &&
|
||||
user.Indirizzo.Trim().Contains(Filter.Indirizzo!.Trim(), StringComparison.OrdinalIgnoreCase))) &&
|
||||
(!Filter.ConAgente || user.CodVage is not null) &&
|
||||
(!Filter.SenzaAgente || user.CodVage is null) &&
|
||||
(Filter.Agenti.IsNullOrEmpty() || (user.CodVage != null && Filter.Agenti!.Contains(user.CodVage)));
|
||||
@@ -193,7 +207,7 @@
|
||||
FilteredGroupedUserList = result;
|
||||
}
|
||||
|
||||
private async Task OnActivityCreated(CRMCreateContactResponseDTO response)
|
||||
private async Task OnUserCreated(CRMCreateContactResponseDTO response)
|
||||
{
|
||||
IsLoading = true;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user