75 lines
2.6 KiB
Plaintext
75 lines
2.6 KiB
Plaintext
@using Hushian.Application.Dtos
|
|
@using HushianWebApp.Service
|
|
@inject GroupService groupService;
|
|
@inject UserService userService;
|
|
@if (!Spinnervisible)
|
|
{
|
|
<div class="row">
|
|
<div class="col-md-12 col-sm-12" style="margin-bottom:15px">
|
|
<AutoComplete @bind-Value="ExperName"
|
|
TItem="HushianUserDto"
|
|
DataProvider="DataProvider"
|
|
PropertyName="FullName"
|
|
Placeholder="جستجو در کاربران..."
|
|
OnChanged="(HushianUserDto exper) => OnAutoCompleteChanged(exper)" />
|
|
</div>
|
|
</div>
|
|
<SortableList TItem="HushianUserDto"
|
|
Data="Expers"
|
|
Context="item"
|
|
AllowSorting="false">
|
|
<ItemTemplate>
|
|
@item.FullName
|
|
<Tooltip Title="گرفتن دسترسی" role="button">
|
|
<Icon Name="IconName.Trash3" @onclick="async()=>{await UnJoin(item);}"></Icon>
|
|
</Tooltip>
|
|
</ItemTemplate>
|
|
</SortableList>
|
|
}
|
|
|
|
<div class="d-flex justify-content-center">
|
|
<Spinner Type="SpinnerType.Dots" Class="me-3" Color="SpinnerColor.Success" Visible="@Spinnervisible" />
|
|
</div>
|
|
|
|
|
|
@code {
|
|
private string? ExperName;
|
|
private bool Spinnervisible = false;
|
|
|
|
[Parameter] public int GroupID { get; set; }
|
|
public List<HushianUserDto> Expers { get; set; }
|
|
= new();
|
|
public List<HushianUserDto> CoExpers { get; set; }
|
|
= new();
|
|
protected override async Task OnParametersSetAsync()
|
|
{
|
|
Spinnervisible = true;
|
|
Expers = await groupService.GetExpersFromGroupID(GroupID);
|
|
Spinnervisible = false;
|
|
await base.OnParametersSetAsync();
|
|
}
|
|
}
|
|
@functions {
|
|
private async Task<AutoCompleteDataProviderResult<HushianUserDto>> DataProvider(AutoCompleteDataProviderRequest<HushianUserDto> request)
|
|
{
|
|
CoExpers = (await userService.GetExpersCompany(0, 0, 0)).list;
|
|
return await Task.FromResult(new AutoCompleteDataProviderResult<HushianUserDto> { Data = CoExpers.Where(w => w.FullName.Contains(request.Filter.Value)), TotalCount = CoExpers.Count() });
|
|
}
|
|
|
|
private async Task OnAutoCompleteChanged(HushianUserDto exper)
|
|
{
|
|
Spinnervisible = true;
|
|
if (exper != null
|
|
&& !Expers.Any(a => a.UserID == exper.UserID)
|
|
&& await groupService.JoinExperToGroup(GroupID, exper.UserID) )
|
|
Expers.Add(exper);
|
|
Spinnervisible = false;
|
|
}
|
|
async Task UnJoin(HushianUserDto exper)
|
|
{
|
|
Spinnervisible = true;
|
|
if (exper != null && await groupService.UnJoinExperToGroup(GroupID, exper.UserID))
|
|
Expers.Remove(exper);
|
|
Spinnervisible = false;
|
|
}
|
|
} |