diff --git a/Netina.AdminPanel.PWA/App.razor b/Netina.AdminPanel.PWA/App.razor index b1425f4..b1b63cf 100644 --- a/Netina.AdminPanel.PWA/App.razor +++ b/Netina.AdminPanel.PWA/App.razor @@ -1,5 +1,6 @@ @using Netina.AdminPanel.PWA.Models @using Netina.AdminPanel.PWA.Layout +@using Netina.AdminPanel.PWA.Pages @inject NavigationManager NavigationManager diff --git a/Netina.AdminPanel.PWA/Components/Originals/SideBarUi.razor b/Netina.AdminPanel.PWA/Components/Originals/SideBarUi.razor index 3a573bf..ee09b37 100644 --- a/Netina.AdminPanel.PWA/Components/Originals/SideBarUi.razor +++ b/Netina.AdminPanel.PWA/Components/Originals/SideBarUi.razor @@ -63,14 +63,13 @@ - + + فروشگاه + بازاریاب ها سوالات متداول - - فروشگاه + نقش ها و کاربران diff --git a/Netina.AdminPanel.PWA/Dialogs/ProductActionDialogBox.razor b/Netina.AdminPanel.PWA/Dialogs/ProductActionDialogBox.razor index 48ee851..ead0ae5 100644 --- a/Netina.AdminPanel.PWA/Dialogs/ProductActionDialogBox.razor +++ b/Netina.AdminPanel.PWA/Dialogs/ProductActionDialogBox.razor @@ -1,6 +1,4 @@ -@using Netina.AdminPanel.PWA.Services.RestServices -@using Netina.AdminPanel.PWA.Utilities -@using Netina.AdminPanel.PWA.Extensions +@using Netina.AdminPanel.PWA.Extensions @inject ISnackbar Snackbar @inject IRestWrapper RestWrapper @inject IUserUtility UserUtility diff --git a/Netina.AdminPanel.PWA/Layout/MainLayout.razor b/Netina.AdminPanel.PWA/Layout/MainLayout.razor index 410cb1a..f7767b5 100644 --- a/Netina.AdminPanel.PWA/Layout/MainLayout.razor +++ b/Netina.AdminPanel.PWA/Layout/MainLayout.razor @@ -1,4 +1,5 @@ -@using Radzen.Blazor +@using Netina.AdminPanel.PWA.Pages +@using Radzen.Blazor @using Netina.AdminPanel.PWA.Utilities @using Netina.AdminPanel.PWA.Models @inherits LayoutComponentBase diff --git a/Netina.AdminPanel.PWA/Pages/MarketerManagementPage.razor b/Netina.AdminPanel.PWA/Pages/MarketerManagementPage.razor new file mode 100644 index 0000000..a2d9b2f --- /dev/null +++ b/Netina.AdminPanel.PWA/Pages/MarketerManagementPage.razor @@ -0,0 +1,64 @@ +@page "/management/marketer" +@attribute [Microsoft.AspNetCore.Authorization.Authorize] + +@inject IDialogService DialogService +@inject NavigationManager NavigationManager +@inject ISnackbar Snackbar +@inject IUserUtility UserUtility +@inject IRestWrapper RestWrapper + + + + + + + + jتنظیماتـــ بازاریاب ها + شما می توانید تنظیمات بازاریاب های خود را ویرایش نمایید + + + + + + + + + + + +
+ + + قرارداد بازاریاب ها + قراردادی که بازاریاب ها در مرحله ثبت نام باید با ان موافقت کنند + + + + + + + + +
+
+ +
+
+
+
+
+@code +{ + public MarketerManagementPageViewModel ViewModel { get; set; } + protected override async Task OnInitializedAsync() + { + ViewModel = new MarketerManagementPageViewModel(NavigationManager, Snackbar, UserUtility, RestWrapper, DialogService); + await ViewModel.InitializeAsync(); + await base.OnInitializedAsync(); + } +} \ No newline at end of file diff --git a/Netina.AdminPanel.PWA/Pages/MarketerManagementPage.razor.cs b/Netina.AdminPanel.PWA/Pages/MarketerManagementPage.razor.cs new file mode 100644 index 0000000..504bbf7 --- /dev/null +++ b/Netina.AdminPanel.PWA/Pages/MarketerManagementPage.razor.cs @@ -0,0 +1,78 @@ +using Netina.Domain.MartenEntities.Settings; + +namespace Netina.AdminPanel.PWA.Pages; + +public class MarketerManagementPageViewModel : BaseViewModel +{ + private readonly NavigationManager _navigationManager; + private readonly ISnackbar _snackbar; + private readonly IUserUtility _userUtility; + private readonly IDialogService _dialogService; + private readonly IRestWrapper _restWrapper; + + + public MarketerManagementPageViewModel(NavigationManager navigationManager, ISnackbar snackbar, IUserUtility userUtility, IRestWrapper restWrapper, IDialogService dialogService) + { + _navigationManager = navigationManager; + _snackbar = snackbar; + _userUtility = userUtility; + _restWrapper = restWrapper; + _dialogService = dialogService; + } + public override async Task InitializeAsync() + { + try + { + IsProcessing = true; + var token = await _userUtility.GetBearerTokenAsync(); + if (token == null) + throw new Exception("Token is null"); + + PageDto = await _restWrapper.SettingRestApi.GetSettingAsync("MarketerSetting", token); + + + } + catch (ApiException e) + { + var exe = await e.GetContentAsAsync(); + _snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error); + } + catch (Exception ex) + { + _snackbar.Add(ex.Message, Severity.Error); + } + finally + { + IsProcessing = false; + } + + await base.InitializeAsync(); + } + + + public async Task SubmitSettingAsync() + { + try + { + + var token = await _userUtility.GetBearerTokenAsync(); + if (token == null) throw new Exception("Token is null"); + await _restWrapper.SettingRestApi.PostSettingAsync("MarketerSetting", PageDto, token); + _snackbar.Add("تنظیمات بازاریاب ها با موفقیت به روز شد", Severity.Success); + } + catch (ApiException ex) + { + var exe = await ex.GetContentAsAsync(); + _snackbar.Add(exe != null ? exe.Message : ex.Content, Severity.Error); + } + catch (Exception e) + { + _snackbar.Add(e.Message, Severity.Error); + } + finally + { + IsProcessing = false; + } + + } +} \ No newline at end of file diff --git a/Netina.AdminPanel.PWA/Pages/ShopManagementPage.razor b/Netina.AdminPanel.PWA/Pages/ShopManagementPage.razor index 623b2fd..8887ffd 100644 --- a/Netina.AdminPanel.PWA/Pages/ShopManagementPage.razor +++ b/Netina.AdminPanel.PWA/Pages/ShopManagementPage.razor @@ -1,6 +1,4 @@ @page "/management/shop" -@using Netina.AdminPanel.PWA.Utilities -@using Netina.AdminPanel.PWA.Services.RestServices @attribute [Microsoft.AspNetCore.Authorization.Authorize] @inject IDialogService DialogService diff --git a/Netina.AdminPanel.PWA/wwwroot/css/app.output.css b/Netina.AdminPanel.PWA/wwwroot/css/app.output.css index b59e618..5b54184 100644 --- a/Netina.AdminPanel.PWA/wwwroot/css/app.output.css +++ b/Netina.AdminPanel.PWA/wwwroot/css/app.output.css @@ -2093,6 +2093,16 @@ input:checked + .toggle-bg { color: rgb(255 255 255 / var(--tw-text-opacity)); } +.text-black { + --tw-text-opacity: 1; + color: rgb(0 0 0 / var(--tw-text-opacity)); +} + +.\!text-black { + --tw-text-opacity: 1 !important; + color: rgb(0 0 0 / var(--tw-text-opacity)) !important; +} + .opacity-0 { opacity: 0; }