diff --git a/src/BackOffice/Common/BaseComponents/BasePageComponent.razor b/src/BackOffice/Common/BaseComponents/BasePageComponent.razor new file mode 100644 index 0000000..715341f --- /dev/null +++ b/src/BackOffice/Common/BaseComponents/BasePageComponent.razor @@ -0,0 +1,35 @@ + + + + + + + فیلتر ها + + @if (IsFilterd) + { + خذف فیلتر + } + + + + + @Filters + + جستجو + + + + + + + + + + + @Content + + + + + diff --git a/src/BackOffice/Common/BaseComponents/BasePageComponent.razor.cs b/src/BackOffice/Common/BaseComponents/BasePageComponent.razor.cs new file mode 100644 index 0000000..d7086be --- /dev/null +++ b/src/BackOffice/Common/BaseComponents/BasePageComponent.razor.cs @@ -0,0 +1,17 @@ +using Microsoft.AspNetCore.Components; + +namespace BackOffice.Common.BaseComponents; +public partial class BasePageComponent +{ + [Parameter] public RenderFragment Filters { get; set; } + [Parameter] public RenderFragment Content { get; set; } + [Parameter] public bool IsFilterd { get; set; } + [Parameter] public EventCallback OnSubmitClick { get; set; } + [Parameter] public EventCallback OnClearFilterClick { get; set; } + private bool _open = true; + + private void ToggleDrawer() + { + _open = !_open; + } +} \ No newline at end of file diff --git a/src/BackOffice/Pages/Package/Components/PackageDataTable.razor b/src/BackOffice/Pages/Package/Components/PackageDataTable.razor deleted file mode 100644 index 14ad96d..0000000 --- a/src/BackOffice/Pages/Package/Components/PackageDataTable.razor +++ /dev/null @@ -1,89 +0,0 @@ -@using BackOffice.BFF.Package.Protobuf.Protos.Package -@using BackOffice.Common.BaseComponents -@using DataModel = BackOffice.BFF.Package.Protobuf.Protos.Package.GetAllPackageByFilterResponseModel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @if (string.IsNullOrWhiteSpace(context.Item.Title)) - { - - - } - else - { - - - - @(context.Item.Title.Truncate(20, true)) - - - } - - - - - - - @if (string.IsNullOrWhiteSpace(context.Item.Description)) - { - - - } - else - { - - - - @(context.Item.Description.HtmlToText().Truncate(20, true)) - - - } - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/BackOffice/Pages/Package/PackageMainPage.razor b/src/BackOffice/Pages/Package/PackageMainPage.razor index a88eec4..e5e43ad 100644 --- a/src/BackOffice/Pages/Package/PackageMainPage.razor +++ b/src/BackOffice/Pages/Package/PackageMainPage.razor @@ -2,35 +2,95 @@ @using BackOffice.BFF.Package.Protobuf.Protos.Package @using BackOffice.Pages.Package.Components +@using BackOffice.Common.BaseComponents +@using DataModel = BackOffice.BFF.Package.Protobuf.Protos.Package.GetAllPackageByFilterResponseModel + + + + + + + + + + + + + + + مدیریت پکیج + + + افزودن + + + + + + + + + + @if (string.IsNullOrWhiteSpace(context.Item.Title)) + { + - + } + else + { + + + + @(context.Item.Title.Truncate(20, true)) + + + } + + + + + + + @if (string.IsNullOrWhiteSpace(context.Item.Description)) + { + - + } + else + { + + + + @(context.Item.Description.HtmlToText().Truncate(20, true)) + + + } + + + + + + + + + + + + + + + + + + + + + + + + + - - - - مدیریت پکیج - - افزودن - - - - - -@code { - - private PackageDataTable _table; - - public async Task CreateNew() - { - var dialog = await DialogService.ShowAsync($"افزودن پکیج", new DialogParameters() { { x => x.Model, new CreateNewPackageRequest() } }, new DialogOptions() { CloseButton = true, FullWidth = true, MaxWidth = MaxWidth.Small }); - var result = await dialog.Result; - if (!result.Canceled) - { - _table.ReLoadData(); - Snackbar.Add("عملیات با موفقیت انجام شد", Severity.Success); - } - } - -} diff --git a/src/BackOffice/Pages/Package/Components/PackageDataTable.razor.cs b/src/BackOffice/Pages/Package/PackageMainPage.razor.cs similarity index 71% rename from src/BackOffice/Pages/Package/Components/PackageDataTable.razor.cs rename to src/BackOffice/Pages/Package/PackageMainPage.razor.cs index f333d93..cf7cfc4 100644 --- a/src/BackOffice/Pages/Package/Components/PackageDataTable.razor.cs +++ b/src/BackOffice/Pages/Package/PackageMainPage.razor.cs @@ -1,21 +1,18 @@ using BackOffice.BFF.Package.Protobuf.Protos.Package; -using Google.Protobuf.WellKnownTypes; -using HtmlAgilityPack; +using BackOffice.Common.BaseComponents; +using BackOffice.Pages.Package.Components; using Mapster; using Microsoft.AspNetCore.Components; using MudBlazor; -using static Google.Rpc.Context.AttributeContext.Types; using DataModel = BackOffice.BFF.Package.Protobuf.Protos.Package.GetAllPackageByFilterResponseModel; -namespace BackOffice.Pages.Package.Components; - -public partial class PackageDataTable +namespace BackOffice.Pages.Package; +public partial class PackageMainPage { - [Inject] public PackageContract.PackageContractClient PackageContract { get; set; } private bool _isLoading = true; private MudDataGrid _gridData; - + BasePageComponent _basePage; private GetAllPackageByFilterRequest _request = new() { Filter = new() }; private async Task> ServerReload(GridState state) { @@ -70,12 +67,31 @@ public partial class PackageDataTable if (_gridData != null) await _gridData.ReloadServerData(); } - private async Task SearchTitle(string? title) + + public async Task CreateNew() { - _request.Filter ??= new(); - _request.Filter.Title = string.IsNullOrWhiteSpace(title) ? default : title; + var dialog = await DialogService.ShowAsync($"افزودن پکیج", new DialogParameters() { { x => x.Model, new CreateNewPackageRequest() } }, new DialogOptions() { CloseButton = true, FullWidth = true, MaxWidth = MaxWidth.Small }); + var result = await dialog.Result; + if (!result.Canceled) + { + ReLoadData(); + Snackbar.Add("عملیات با موفقیت انجام شد", Severity.Success); + } + } + + + public async Task OnFilterSubmit() + { + _basePage.IsFilterd = true; + StateHasChanged(); ReLoadData(); } - + public async Task OnFilterCleard() + { + _basePage.IsFilterd = false; + StateHasChanged(); + _request = new() { Filter = new() { } }; + ReLoadData(); + } } \ No newline at end of file diff --git a/src/BackOffice/Pages/Role/Components/RoleDataTable.razor b/src/BackOffice/Pages/Role/Components/RoleDataTable.razor deleted file mode 100644 index 859becc..0000000 --- a/src/BackOffice/Pages/Role/Components/RoleDataTable.razor +++ /dev/null @@ -1,39 +0,0 @@ -@using BackOffice.BFF.Role.Protobuf.Protos.Role -@using BackOffice.Common.BaseComponents -@using DataModel = BackOffice.BFF.Role.Protobuf.Protos.Role.GetAllRoleByFilterResponseModel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/BackOffice/Pages/Role/RoleMainPage.razor b/src/BackOffice/Pages/Role/RoleMainPage.razor index c06d768..7057408 100644 --- a/src/BackOffice/Pages/Role/RoleMainPage.razor +++ b/src/BackOffice/Pages/Role/RoleMainPage.razor @@ -2,35 +2,59 @@ @using BackOffice.BFF.Role.Protobuf.Protos.Role @using BackOffice.Pages.Role.Components +@using BackOffice.Common.BaseComponents +@using DataModel = BackOffice.BFF.Role.Protobuf.Protos.Role.GetAllRoleByFilterResponseModel + + + + + + + + + + + + + + + مدیریت نقش + + + افزودن + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - مدیریت نقش - - افزودن - - - - - -@code { - private RoleDataTable _table; - - public async Task CreateNew() - { - var dialog = await DialogService.ShowAsync($"افزودن نقش", new DialogParameters() { { x => x.Model, new CreateNewRoleRequest() } }, new DialogOptions() { CloseButton = true, FullWidth = true, MaxWidth = MaxWidth.Small }); - var result = await dialog.Result; - if (!result.Canceled) - { - _table.ReLoadData(); - Snackbar.Add("عملیات با موفقیت انجام شد", Severity.Success); - } - } - -} diff --git a/src/BackOffice/Pages/Role/Components/RoleDataTable.razor.cs b/src/BackOffice/Pages/Role/RoleMainPage.razor.cs similarity index 70% rename from src/BackOffice/Pages/Role/Components/RoleDataTable.razor.cs rename to src/BackOffice/Pages/Role/RoleMainPage.razor.cs index cc62718..0fdb165 100644 --- a/src/BackOffice/Pages/Role/Components/RoleDataTable.razor.cs +++ b/src/BackOffice/Pages/Role/RoleMainPage.razor.cs @@ -1,17 +1,26 @@ using BackOffice.BFF.Role.Protobuf.Protos.Role; -using Google.Protobuf.WellKnownTypes; -using HtmlAgilityPack; +using BackOffice.Common.BaseComponents; +using BackOffice.Pages.Role.Components; using Mapster; using Microsoft.AspNetCore.Components; using MudBlazor; -using static Google.Rpc.Context.AttributeContext.Types; using DataModel = BackOffice.BFF.Role.Protobuf.Protos.Role.GetAllRoleByFilterResponseModel; -namespace BackOffice.Pages.Role.Components; - -public partial class RoleDataTable +namespace BackOffice.Pages.Role; +public partial class RoleMainPage { + BasePageComponent _basePage; + public async Task CreateNew() + { + var dialog = await DialogService.ShowAsync($"افزودن نقش", new DialogParameters() { { x => x.Model, new CreateNewRoleRequest() } }, new DialogOptions() { CloseButton = true, FullWidth = true, MaxWidth = MaxWidth.Small }); + var result = await dialog.Result; + if (!result.Canceled) + { + ReLoadData(); + Snackbar.Add("عملیات با موفقیت انجام شد", Severity.Success); + } + } [Inject] public RoleContract.RoleContractClient RoleContract { get; set; } private bool _isLoading = true; private MudDataGrid _gridData; @@ -70,5 +79,18 @@ public partial class RoleDataTable if (_gridData != null) await _gridData.ReloadServerData(); } + public async Task OnFilterSubmit() + { + _basePage.IsFilterd = true; + StateHasChanged(); + ReLoadData(); + } + public async Task OnFilterCleard() + { + _basePage.IsFilterd = false; + StateHasChanged(); + _request = new() { Filter = new() { } }; + ReLoadData(); + } } \ No newline at end of file diff --git a/src/BackOffice/Pages/User/Components/UserDataTable.razor b/src/BackOffice/Pages/User/Components/UserDataTable.razor deleted file mode 100644 index d4762e5..0000000 --- a/src/BackOffice/Pages/User/Components/UserDataTable.razor +++ /dev/null @@ -1,71 +0,0 @@ -@using BackOffice.BFF.User.Protobuf.Protos.User -@using BackOffice.Common.BaseComponents -@using DataModel = BackOffice.BFF.User.Protobuf.Protos.User.GetAllUserByFilterResponseModel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @($"{context.Item.FirstName} {context.Item.LastName}") - - - - - - - - - - - - فاکتور ها - آدرس ها - مدیریت نقش - آرشیو - - - - - - - - - - - diff --git a/src/BackOffice/Pages/User/UserMainPage.razor b/src/BackOffice/Pages/User/UserMainPage.razor index 910a9c9..b8ea98e 100644 --- a/src/BackOffice/Pages/User/UserMainPage.razor +++ b/src/BackOffice/Pages/User/UserMainPage.razor @@ -2,21 +2,66 @@ @using BackOffice.BFF.User.Protobuf.Protos.User @using BackOffice.Pages.User.Components +@using BackOffice.Common.BaseComponents +@using DataModel = BackOffice.BFF.User.Protobuf.Protos.User.GetAllUserByFilterResponseModel - - - - مدیریت کاربر - - - - + + + + + + + + + + + + + + + + + + + مدیریت کاربر + + + + + + + + @($"{context.Item.FirstName} {context.Item.LastName}") + + + + -@code { - private UserDataTable _table; - -} + + + + + فاکتور ها + آدرس ها + مدیریت نقش + آرشیو + + + + + + + + + + + + + + diff --git a/src/BackOffice/Pages/User/Components/UserDataTable.razor.cs b/src/BackOffice/Pages/User/UserMainPage.razor.cs similarity index 86% rename from src/BackOffice/Pages/User/Components/UserDataTable.razor.cs rename to src/BackOffice/Pages/User/UserMainPage.razor.cs index 647ce7e..9dda340 100644 --- a/src/BackOffice/Pages/User/Components/UserDataTable.razor.cs +++ b/src/BackOffice/Pages/User/UserMainPage.razor.cs @@ -1,23 +1,17 @@ using BackOffice.BFF.User.Protobuf.Protos.User; -using BackOffice.BFF.UserRole.Protobuf.Protos.UserRole; -using Google.Protobuf.WellKnownTypes; -using HtmlAgilityPack; -using Mapster; +using BackOffice.Common.BaseComponents; +using BackOffice.Pages.User.Components; using Microsoft.AspNetCore.Components; using MudBlazor; -using static Google.Rpc.Context.AttributeContext.Types; -using static MudBlazor.CategoryTypes; using DataModel = BackOffice.BFF.User.Protobuf.Protos.User.GetAllUserByFilterResponseModel; -namespace BackOffice.Pages.User.Components; - -public partial class UserDataTable +namespace BackOffice.Pages.User; +public partial class UserMainPage { - [Inject] public UserContract.UserContractClient UserContract { get; set; } private bool _isLoading = true; private MudDataGrid _gridData; - + BasePageComponent _basePage; private GetAllUserByFilterRequest _request = new() { Filter = new() }; private async Task> ServerReload(GridState state) { @@ -91,4 +85,18 @@ public partial class UserDataTable Snackbar.Add("عملیات با موفقیت انجام شد", Severity.Success); } } + public async Task OnFilterSubmit() + { + _basePage.IsFilterd = true; + StateHasChanged(); + ReLoadData(); + } + + public async Task OnFilterCleard() + { + _basePage.IsFilterd = false; + StateHasChanged(); + _request = new() { Filter = new() { } }; + ReLoadData(); + } } \ No newline at end of file diff --git a/src/BackOffice/Pages/UserAddress/Components/UserAddressDataTable.razor b/src/BackOffice/Pages/UserAddress/Components/UserAddressDataTable.razor deleted file mode 100644 index e2396f6..0000000 --- a/src/BackOffice/Pages/UserAddress/Components/UserAddressDataTable.razor +++ /dev/null @@ -1,39 +0,0 @@ -@using BackOffice.BFF.UserAddress.Protobuf.Protos.UserAddress -@using BackOffice.Common.BaseComponents -@using DataModel = BackOffice.BFF.UserAddress.Protobuf.Protos.UserAddress.GetAllUserAddressByFilterResponseModel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/BackOffice/Pages/UserAddress/UserAddressMainPage.razor b/src/BackOffice/Pages/UserAddress/UserAddressMainPage.razor index c66240c..ecb2f13 100644 --- a/src/BackOffice/Pages/UserAddress/UserAddressMainPage.razor +++ b/src/BackOffice/Pages/UserAddress/UserAddressMainPage.razor @@ -1,36 +1,57 @@ -@attribute [Route(RouteConstance.UserAddress+"{UserId:long}")] +@attribute [Route(RouteConstance.UserAddress + "{UserId:long}")] @using BackOffice.BFF.UserAddress.Protobuf.Protos.UserAddress @using BackOffice.Pages.UserAddress.Components +@using BackOffice.Common.BaseComponents +@using DataModel = BackOffice.BFF.UserAddress.Protobuf.Protos.UserAddress.GetAllUserAddressByFilterResponseModel - - - - مدیریت آدرس - - افزودن - - - - - + + + + + + + + + + + + + + مدیریت آدرس + + + افزودن + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -@code { - [Parameter] public long UserId { get; set; } - private UserAddressDataTable _table; - - public async Task CreateNew() - { - var dialog = await DialogService.ShowAsync($"افزودن آدرس", new DialogParameters() { { x => x.Model, new CreateNewUserAddressRequest() { UserId = UserId } } }, new DialogOptions() { CloseButton = true, FullWidth = true, MaxWidth = MaxWidth.Small }); - var result = await dialog.Result; - if (!result.Canceled) - { - _table.ReLoadData(); - Snackbar.Add("عملیات با موفقیت انجام شد", Severity.Success); - } - } - -} - diff --git a/src/BackOffice/Pages/UserAddress/Components/UserAddressDataTable.razor.cs b/src/BackOffice/Pages/UserAddress/UserAddressMainPage.razor.cs similarity index 71% rename from src/BackOffice/Pages/UserAddress/Components/UserAddressDataTable.razor.cs rename to src/BackOffice/Pages/UserAddress/UserAddressMainPage.razor.cs index f5b295a..4525371 100644 --- a/src/BackOffice/Pages/UserAddress/Components/UserAddressDataTable.razor.cs +++ b/src/BackOffice/Pages/UserAddress/UserAddressMainPage.razor.cs @@ -1,21 +1,19 @@ using BackOffice.BFF.UserAddress.Protobuf.Protos.UserAddress; -using Google.Protobuf.WellKnownTypes; -using HtmlAgilityPack; +using BackOffice.Common.BaseComponents; +using BackOffice.Pages.UserAddress.Components; using Mapster; using Microsoft.AspNetCore.Components; using MudBlazor; -using static Google.Rpc.Context.AttributeContext.Types; using DataModel = BackOffice.BFF.UserAddress.Protobuf.Protos.UserAddress.GetAllUserAddressByFilterResponseModel; -namespace BackOffice.Pages.UserAddress.Components; - -public partial class UserAddressDataTable +namespace BackOffice.Pages.UserAddress; +public partial class UserAddressMainPage { [Parameter] public long UserId { get; set; } [Inject] public UserAddressContract.UserAddressContractClient UserAddressContract { get; set; } private bool _isLoading = true; private MudDataGrid _gridData; - + BasePageComponent _basePage; private GetAllUserAddressByFilterRequest _request = new() { Filter = new() }; private async Task> ServerReload(GridState state) { @@ -73,5 +71,28 @@ public partial class UserAddressDataTable if (_gridData != null) await _gridData.ReloadServerData(); } + public async Task CreateNew() + { + var dialog = await DialogService.ShowAsync($"افزودن آدرس", new DialogParameters() { { x => x.Model, new CreateNewUserAddressRequest() { UserId = UserId } } }, new DialogOptions() { CloseButton = true, FullWidth = true, MaxWidth = MaxWidth.Small }); + var result = await dialog.Result; + if (!result.Canceled) + { + ReLoadData(); + Snackbar.Add("عملیات با موفقیت انجام شد", Severity.Success); + } + } + public async Task OnFilterSubmit() + { + _basePage.IsFilterd = true; + StateHasChanged(); + ReLoadData(); + } + public async Task OnFilterCleard() + { + _basePage.IsFilterd = false; + StateHasChanged(); + _request = new() { Filter = new() { } }; + ReLoadData(); + } } \ No newline at end of file diff --git a/src/BackOffice/Pages/UserOrder/Components/UserOrderDataTable.razor b/src/BackOffice/Pages/UserOrder/Components/UserOrderDataTable.razor index 17ae14d..c65238f 100644 --- a/src/BackOffice/Pages/UserOrder/Components/UserOrderDataTable.razor +++ b/src/BackOffice/Pages/UserOrder/Components/UserOrderDataTable.razor @@ -1,51 +1,2 @@ -@using BackOffice.BFF.UserOrder.Protobuf.Protos.UserOrder -@using BackOffice.Common.BaseComponents -@using DataModel = BackOffice.BFF.UserOrder.Protobuf.Protos.UserOrder.GetAllUserOrderByFilterResponseModel - - - - - - - - - - - - - - - @if (context.Item.PaymentStatus) - { - پرداخت شده - } - else - { - پرداخت نشده - } - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/src/BackOffice/Pages/UserOrder/Components/UserOrderDataTable.razor.cs b/src/BackOffice/Pages/UserOrder/Components/UserOrderDataTable.razor.cs index dea0d1e..24f0639 100644 --- a/src/BackOffice/Pages/UserOrder/Components/UserOrderDataTable.razor.cs +++ b/src/BackOffice/Pages/UserOrder/Components/UserOrderDataTable.razor.cs @@ -13,50 +13,6 @@ public partial class UserOrderDataTable { [Parameter] public long UserId { get; set; } - [Inject] public UserOrderContract.UserOrderContractClient UserOrderContract { get; set; } - private bool _isLoading = true; - private MudDataGrid _gridData; - - private GetAllUserOrderByFilterRequest _request = new() { Filter = new() }; - private async Task> ServerReload(GridState state) - { - _request.Filter ??= new(); - _request.PaginationState ??= new(); - _request.PaginationState.PageNumber = state.Page + 1; - _request.PaginationState.PageSize = state.PageSize; - - _request.Filter.UserId = UserId; - - var result = await UserOrderContract.GetAllUserOrderByFilterAsync(_request); - if (result != null && result.Models != null && result.Models.Any()) - { - return new GridData() { Items = result.Models.ToList(), TotalItems = (int)result.MetaData.TotalCount }; - } - - return new GridData(); - } - private async Task OnDelete(DataModel model) - { - var options = new DialogOptions { CloseOnEscapeKey = true, MaxWidth = MaxWidth.Small }; - bool? result = await DialogService.ShowMessageBox( - "اخطار", - "آیا از حذف این مورد مطمئن هستید؟", - yesText: "حذف", cancelText: "لغو", - options: options); - if (result != null && result.Value) - { - await UserOrderContract.DeleteUserOrderAsync(new() - { - Id = model.Id - }); - ReLoadData(); - } - StateHasChanged(); - } - public async void ReLoadData() - { - if (_gridData != null) - await _gridData.ReloadServerData(); - } + } \ No newline at end of file diff --git a/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor b/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor index 6a2ed7a..c8a477d 100644 --- a/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor +++ b/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor @@ -2,22 +2,67 @@ @using BackOffice.BFF.UserOrder.Protobuf.Protos.UserOrder @using BackOffice.Pages.UserOrder.Components +@using BackOffice.Common.BaseComponents +@using DataModel = BackOffice.BFF.UserOrder.Protobuf.Protos.UserOrder.GetAllUserOrderByFilterResponseModel - - - - فاکتور - - - - + + + + + + + + + + + + + + + فاکتور + + + + + + + + @if (context.Item.PaymentStatus) + { + پرداخت شده + } + else + { + پرداخت نشده + } + + + + -@code { - [Parameter] public long UserId { get; set; } - private UserOrderDataTable _table; - -} + + + + + + + + + + + + + + + + + + + + + diff --git a/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor.cs b/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor.cs new file mode 100644 index 0000000..26c7ad9 --- /dev/null +++ b/src/BackOffice/Pages/UserOrder/UserOrderMainPage.razor.cs @@ -0,0 +1,71 @@ +using BackOffice.BFF.UserOrder.Protobuf.Protos.UserOrder; +using BackOffice.Common.BaseComponents; +using Microsoft.AspNetCore.Components; +using MudBlazor; +using DataModel = BackOffice.BFF.UserOrder.Protobuf.Protos.UserOrder.GetAllUserOrderByFilterResponseModel; + +namespace BackOffice.Pages.UserOrder; +public partial class UserOrderMainPage +{ + [Parameter] public long UserId { get; set; } + [Inject] public UserOrderContract.UserOrderContractClient UserOrderContract { get; set; } + private bool _isLoading = true; + private MudDataGrid _gridData; + BasePageComponent _basePage; + + private GetAllUserOrderByFilterRequest _request = new() { Filter = new() }; + private async Task> ServerReload(GridState state) + { + _request.Filter ??= new(); + _request.PaginationState ??= new(); + _request.PaginationState.PageNumber = state.Page + 1; + _request.PaginationState.PageSize = state.PageSize; + + _request.Filter.UserId = UserId; + + var result = await UserOrderContract.GetAllUserOrderByFilterAsync(_request); + if (result != null && result.Models != null && result.Models.Any()) + { + return new GridData() { Items = result.Models.ToList(), TotalItems = (int)result.MetaData.TotalCount }; + } + + return new GridData(); + } + private async Task OnDelete(DataModel model) + { + var options = new DialogOptions { CloseOnEscapeKey = true, MaxWidth = MaxWidth.Small }; + bool? result = await DialogService.ShowMessageBox( + "اخطار", + "آیا از حذف این مورد مطمئن هستید؟", + yesText: "حذف", cancelText: "لغو", + options: options); + if (result != null && result.Value) + { + await UserOrderContract.DeleteUserOrderAsync(new() + { + Id = model.Id + }); + ReLoadData(); + } + StateHasChanged(); + } + public async void ReLoadData() + { + if (_gridData != null) + await _gridData.ReloadServerData(); + } + public async Task OnFilterSubmit() + { + _basePage.IsFilterd = true; + StateHasChanged(); + ReLoadData(); + } + + public async Task OnFilterCleard() + { + _basePage.IsFilterd = false; + StateHasChanged(); + _request = new() { Filter = new() { } }; + ReLoadData(); + } +} \ No newline at end of file diff --git a/src/BackOffice/Pages/UserRole/Components/UserRoleDataTable.razor b/src/BackOffice/Pages/UserRole/Components/UserRoleDataTable.razor deleted file mode 100644 index c197683..0000000 --- a/src/BackOffice/Pages/UserRole/Components/UserRoleDataTable.razor +++ /dev/null @@ -1,39 +0,0 @@ -@using BackOffice.BFF.UserRole.Protobuf.Protos.UserRole -@using BackOffice.Common.BaseComponents -@using DataModel = BackOffice.BFF.UserRole.Protobuf.Protos.UserRole.GetAllUserRoleByFilterResponseModel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/BackOffice/Pages/UserRole/UserRoleMainPage.razor b/src/BackOffice/Pages/UserRole/UserRoleMainPage.razor index 8ade2ea..dbfe885 100644 --- a/src/BackOffice/Pages/UserRole/UserRoleMainPage.razor +++ b/src/BackOffice/Pages/UserRole/UserRoleMainPage.razor @@ -2,36 +2,55 @@ @using BackOffice.BFF.UserRole.Protobuf.Protos.UserRole @using BackOffice.Pages.UserRole.Components +@using BackOffice.Common.BaseComponents +@using DataModel = BackOffice.BFF.UserRole.Protobuf.Protos.UserRole.GetAllUserRoleByFilterResponseModel - - - - مدیریت نقش های کاربر - - افزودن - - - - - + + + + + + + + + + + + + مدیریت نقش های کاربر + + افزودن + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -@code { - [Parameter] public long UserId { get; set; } - - private UserRoleDataTable _table; - - public async Task CreateNew() - { - var dialog = await DialogService.ShowAsync($"افزودن نقش های کاربر", new DialogParameters() { { x => x.Model, new CreateNewUserRoleRequest() { UserId = UserId } } }, new DialogOptions() { CloseButton = true, FullWidth = true, MaxWidth = MaxWidth.Small }); - var result = await dialog.Result; - if (!result.Canceled) - { - _table.ReLoadData(); - Snackbar.Add("عملیات با موفقیت انجام شد", Severity.Success); - } - } - -} diff --git a/src/BackOffice/Pages/UserRole/Components/UserRoleDataTable.razor.cs b/src/BackOffice/Pages/UserRole/UserRoleMainPage.razor.cs similarity index 70% rename from src/BackOffice/Pages/UserRole/Components/UserRoleDataTable.razor.cs rename to src/BackOffice/Pages/UserRole/UserRoleMainPage.razor.cs index 507fb21..b397833 100644 --- a/src/BackOffice/Pages/UserRole/Components/UserRoleDataTable.razor.cs +++ b/src/BackOffice/Pages/UserRole/UserRoleMainPage.razor.cs @@ -1,21 +1,19 @@ using BackOffice.BFF.UserRole.Protobuf.Protos.UserRole; -using Google.Protobuf.WellKnownTypes; -using HtmlAgilityPack; +using BackOffice.Common.BaseComponents; +using BackOffice.Pages.UserRole.Components; using Mapster; using Microsoft.AspNetCore.Components; using MudBlazor; -using static Google.Rpc.Context.AttributeContext.Types; using DataModel = BackOffice.BFF.UserRole.Protobuf.Protos.UserRole.GetAllUserRoleByFilterResponseModel; -namespace BackOffice.Pages.UserRole.Components; - -public partial class UserRoleDataTable +namespace BackOffice.Pages.UserRole; +public partial class UserRoleMainPage { [Parameter] public long UserId { get; set; } [Inject] public UserRoleContract.UserRoleContractClient UserRoleContract { get; set; } private bool _isLoading = true; private MudDataGrid _gridData; - + BasePageComponent _basePage; private GetAllUserRoleByFilterRequest _request = new() { Filter = new() }; private async Task> ServerReload(GridState state) { @@ -73,4 +71,28 @@ public partial class UserRoleDataTable await _gridData.ReloadServerData(); } + public async Task CreateNew() + { + var dialog = await DialogService.ShowAsync($"افزودن نقش های کاربر", new DialogParameters() { { x => x.Model, new CreateNewUserRoleRequest() { UserId = UserId } } }, new DialogOptions() { CloseButton = true, FullWidth = true, MaxWidth = MaxWidth.Small }); + var result = await dialog.Result; + if (!result.Canceled) + { + ReLoadData(); + Snackbar.Add("عملیات با موفقیت انجام شد", Severity.Success); + } + } + public async Task OnFilterSubmit() + { + _basePage.IsFilterd = true; + StateHasChanged(); + ReLoadData(); + } + + public async Task OnFilterCleard() + { + _basePage.IsFilterd = false; + StateHasChanged(); + _request = new() { Filter = new() { } }; + ReLoadData(); + } } \ No newline at end of file diff --git a/src/BackOffice/Pages/_Imports.razor b/src/BackOffice/Pages/_Imports.razor new file mode 100644 index 0000000..992c394 --- /dev/null +++ b/src/BackOffice/Pages/_Imports.razor @@ -0,0 +1,3 @@ +@using BackOffice.BFF.Package.Protobuf.Protos.Package +@using BackOffice.BFF.UserOrder.Protobuf.Protos.UserOrder +@using BackOffice.BFF.UserRole.Protobuf.Protos.UserRole \ No newline at end of file diff --git a/src/BackOffice/Shared/MainLayout.razor b/src/BackOffice/Shared/MainLayout.razor index f9de7f7..541ea1d 100644 --- a/src/BackOffice/Shared/MainLayout.razor +++ b/src/BackOffice/Shared/MainLayout.razor @@ -22,7 +22,7 @@ - + diff --git a/src/BackOffice/Shared/MainLayout.razor.cs b/src/BackOffice/Shared/MainLayout.razor.cs index 78f6927..6aa7911 100644 --- a/src/BackOffice/Shared/MainLayout.razor.cs +++ b/src/BackOffice/Shared/MainLayout.razor.cs @@ -5,7 +5,7 @@ using MudBlazor; namespace BackOffice.Shared; public partial class MainLayout { - bool _drawerOpen = true; + bool _drawerOpen = false; private string Details { get; set; } void DrawerToggle() diff --git a/src/BackOffice/wwwroot/favicon.png b/src/BackOffice/wwwroot/favicon.png index 3d8d15c..c60f928 100644 Binary files a/src/BackOffice/wwwroot/favicon.png and b/src/BackOffice/wwwroot/favicon.png differ diff --git a/src/BackOffice/wwwroot/icon-512.png b/src/BackOffice/wwwroot/icon-512.png index 0498e41..e67c57d 100644 Binary files a/src/BackOffice/wwwroot/icon-512.png and b/src/BackOffice/wwwroot/icon-512.png differ diff --git a/src/BackOffice/wwwroot/index.html b/src/BackOffice/wwwroot/index.html index b92ddb9..e87d275 100644 --- a/src/BackOffice/wwwroot/index.html +++ b/src/BackOffice/wwwroot/index.html @@ -4,7 +4,7 @@ - مدیریت آفرینو + مدیریت فرصت diff --git a/src/BackOffice/wwwroot/manifest.json b/src/BackOffice/wwwroot/manifest.json index 3f85c08..f8fd30f 100644 --- a/src/BackOffice/wwwroot/manifest.json +++ b/src/BackOffice/wwwroot/manifest.json @@ -1,6 +1,6 @@ { - "name": "Afrino", - "short_name": "Afrino", + "name": "Foursat", + "short_name": "Foursat", "start_url": "./", "display": "standalone", "background_color": "#ffffff",