From 148363d46814676c3cf6cb15655abcc98f02351a Mon Sep 17 00:00:00 2001 From: King Date: Sun, 28 Sep 2025 18:56:17 +0330 Subject: [PATCH] Update --- src/BackOffice/BackOffice.sln | 25 +++ src/BackOffice/BackOffice/App.razor | 30 +++ src/BackOffice/BackOffice/BackOffice.csproj | 45 ++++ .../BaseComponents/DateRangePicker.razor | 8 + .../BaseComponents/DateRangePicker.razor.cs | 66 ++++++ .../Common/BaseComponents/Image.razor | 12 ++ .../Common/BaseComponents/Image.razor.cs | 39 ++++ .../Common/Configure/ConfigureService.cs | 93 +++++++++ .../BackOffice/Common/Models/WorkHoursDto.cs | 14 ++ .../ApiAuthenticationStateProvider.cs | 54 +++++ .../Common/Utilities/AppTokenProvider.cs | 27 +++ .../BackOffice/Common/Utilities/Enums.cs | 17 ++ .../Utilities/ErrorHandlerInterceptor.cs | 35 ++++ .../BackOffice/Common/Utilities/Extensions.cs | 195 ++++++++++++++++++ .../Common/Utilities/GlobalConstants.cs | 13 ++ .../Common/Utilities/ITokenProvider.cs | 7 + .../Common/Utilities/RouteConstance.cs | 9 + .../Common/Utilities/TokenHandler.cs | 52 +++++ .../BackOffice/Common/Utilities/UrlUtility.cs | 6 + src/BackOffice/BackOffice/Pages/Index.razor | 3 + .../BackOffice/Pages/Login/LoginPage.razor | 21 ++ .../BackOffice/Pages/Login/LoginPage.razor.cs | 41 ++++ .../Pages/Login/VerifyCodePage.razor | 20 ++ .../Pages/Login/VerifyCodePage.razor.cs | 97 +++++++++ .../Package/Components/CreateDialog.razor | 55 +++++ .../Package/Components/CreateDialog.razor.cs | 83 ++++++++ .../Package/Components/PackageDataTable.razor | 75 +++++++ .../Components/PackageDataTable.razor.cs | 74 +++++++ .../Package/Components/UpdateDialog.razor | 55 +++++ .../Package/Components/UpdateDialog.razor.cs | 84 ++++++++ .../Pages/Package/PackageMainPage.razor | 36 ++++ src/BackOffice/BackOffice/Program.cs | 15 ++ .../BackOffice/Properties/launchSettings.json | 38 ++++ .../BackOffice/Shared/EmptyLayout.razor | 36 ++++ .../BackOffice/Shared/MainLayout.razor | 36 ++++ .../BackOffice/Shared/MainLayout.razor.cs | 27 +++ .../BackOffice/Shared/NavMenu.razor | 25 +++ .../BackOffice/Shared/NavMenu.razor.css | 0 src/BackOffice/BackOffice/_Imports.razor | 22 ++ .../wwwroot/appsettings.Development.json | 9 + .../BackOffice/wwwroot/appsettings.json | 9 + src/BackOffice/BackOffice/wwwroot/css/app.css | 82 ++++++++ src/BackOffice/BackOffice/wwwroot/favicon.png | Bin 0 -> 1280 bytes .../wwwroot/fonts/eot/IRANSansWeb(FaNum).eot | Bin 0 -> 62008 bytes .../fonts/eot/IRANSansWeb(FaNum)_Black.eot | Bin 0 -> 59864 bytes .../fonts/eot/IRANSansWeb(FaNum)_Bold.eot | Bin 0 -> 61516 bytes .../fonts/eot/IRANSansWeb(FaNum)_Light.eot | Bin 0 -> 64268 bytes .../fonts/eot/IRANSansWeb(FaNum)_Medium.eot | Bin 0 -> 52940 bytes .../eot/IRANSansWeb(FaNum)_UltraLight.eot | Bin 0 -> 63328 bytes .../wwwroot/fonts/ttf/IRANSansWeb(FaNum).ttf | Bin 0 -> 61708 bytes .../fonts/ttf/IRANSansWeb(FaNum)_Black.ttf | Bin 0 -> 59540 bytes .../fonts/ttf/IRANSansWeb(FaNum)_Bold.ttf | Bin 0 -> 61216 bytes .../fonts/ttf/IRANSansWeb(FaNum)_Light.ttf | Bin 0 -> 63944 bytes .../fonts/ttf/IRANSansWeb(FaNum)_Medium.ttf | Bin 0 -> 52612 bytes .../ttf/IRANSansWeb(FaNum)_UltraLight.ttf | Bin 0 -> 62984 bytes .../fonts/woff/IRANSansWeb(FaNum).woff | Bin 0 -> 37253 bytes .../fonts/woff/IRANSansWeb(FaNum)_Black.woff | Bin 0 -> 35061 bytes .../fonts/woff/IRANSansWeb(FaNum)_Bold.woff | Bin 0 -> 36301 bytes .../fonts/woff/IRANSansWeb(FaNum)_Light.woff | Bin 0 -> 37805 bytes .../fonts/woff/IRANSansWeb(FaNum)_Medium.woff | Bin 0 -> 32145 bytes .../woff/IRANSansWeb(FaNum)_UltraLight.woff | Bin 0 -> 37853 bytes .../fonts/woff2/IRANSansWeb(FaNum).woff2 | Bin 0 -> 29284 bytes .../woff2/IRANSansWeb(FaNum)_Black.woff2 | Bin 0 -> 27224 bytes .../fonts/woff2/IRANSansWeb(FaNum)_Bold.woff2 | Bin 0 -> 28392 bytes .../woff2/IRANSansWeb(FaNum)_Light.woff2 | Bin 0 -> 29908 bytes .../woff2/IRANSansWeb(FaNum)_Medium.woff2 | Bin 0 -> 25596 bytes .../woff2/IRANSansWeb(FaNum)_UltraLight.woff2 | Bin 0 -> 29892 bytes .../BackOffice/wwwroot/icon-192.png | Bin 0 -> 9615 bytes .../BackOffice/wwwroot/icon-512.png | Bin 0 -> 35056 bytes src/BackOffice/BackOffice/wwwroot/index.html | 44 ++++ src/BackOffice/BackOffice/wwwroot/js/main.js | 8 + src/BackOffice/BackOffice/wwwroot/js/quill.js | 3 + .../BackOffice/wwwroot/manifest.json | 21 ++ .../BackOffice/wwwroot/service-worker.js | 4 + .../wwwroot/service-worker.published.js | 47 +++++ 75 files changed, 1817 insertions(+) create mode 100644 src/BackOffice/BackOffice.sln create mode 100644 src/BackOffice/BackOffice/App.razor create mode 100644 src/BackOffice/BackOffice/BackOffice.csproj create mode 100644 src/BackOffice/BackOffice/Common/BaseComponents/DateRangePicker.razor create mode 100644 src/BackOffice/BackOffice/Common/BaseComponents/DateRangePicker.razor.cs create mode 100644 src/BackOffice/BackOffice/Common/BaseComponents/Image.razor create mode 100644 src/BackOffice/BackOffice/Common/BaseComponents/Image.razor.cs create mode 100644 src/BackOffice/BackOffice/Common/Configure/ConfigureService.cs create mode 100644 src/BackOffice/BackOffice/Common/Models/WorkHoursDto.cs create mode 100644 src/BackOffice/BackOffice/Common/Utilities/ApiAuthenticationStateProvider.cs create mode 100644 src/BackOffice/BackOffice/Common/Utilities/AppTokenProvider.cs create mode 100644 src/BackOffice/BackOffice/Common/Utilities/Enums.cs create mode 100644 src/BackOffice/BackOffice/Common/Utilities/ErrorHandlerInterceptor.cs create mode 100644 src/BackOffice/BackOffice/Common/Utilities/Extensions.cs create mode 100644 src/BackOffice/BackOffice/Common/Utilities/GlobalConstants.cs create mode 100644 src/BackOffice/BackOffice/Common/Utilities/ITokenProvider.cs create mode 100644 src/BackOffice/BackOffice/Common/Utilities/RouteConstance.cs create mode 100644 src/BackOffice/BackOffice/Common/Utilities/TokenHandler.cs create mode 100644 src/BackOffice/BackOffice/Common/Utilities/UrlUtility.cs create mode 100644 src/BackOffice/BackOffice/Pages/Index.razor create mode 100644 src/BackOffice/BackOffice/Pages/Login/LoginPage.razor create mode 100644 src/BackOffice/BackOffice/Pages/Login/LoginPage.razor.cs create mode 100644 src/BackOffice/BackOffice/Pages/Login/VerifyCodePage.razor create mode 100644 src/BackOffice/BackOffice/Pages/Login/VerifyCodePage.razor.cs create mode 100644 src/BackOffice/BackOffice/Pages/Package/Components/CreateDialog.razor create mode 100644 src/BackOffice/BackOffice/Pages/Package/Components/CreateDialog.razor.cs create mode 100644 src/BackOffice/BackOffice/Pages/Package/Components/PackageDataTable.razor create mode 100644 src/BackOffice/BackOffice/Pages/Package/Components/PackageDataTable.razor.cs create mode 100644 src/BackOffice/BackOffice/Pages/Package/Components/UpdateDialog.razor create mode 100644 src/BackOffice/BackOffice/Pages/Package/Components/UpdateDialog.razor.cs create mode 100644 src/BackOffice/BackOffice/Pages/Package/PackageMainPage.razor create mode 100644 src/BackOffice/BackOffice/Program.cs create mode 100644 src/BackOffice/BackOffice/Properties/launchSettings.json create mode 100644 src/BackOffice/BackOffice/Shared/EmptyLayout.razor create mode 100644 src/BackOffice/BackOffice/Shared/MainLayout.razor create mode 100644 src/BackOffice/BackOffice/Shared/MainLayout.razor.cs create mode 100644 src/BackOffice/BackOffice/Shared/NavMenu.razor create mode 100644 src/BackOffice/BackOffice/Shared/NavMenu.razor.css create mode 100644 src/BackOffice/BackOffice/_Imports.razor create mode 100644 src/BackOffice/BackOffice/wwwroot/appsettings.Development.json create mode 100644 src/BackOffice/BackOffice/wwwroot/appsettings.json create mode 100644 src/BackOffice/BackOffice/wwwroot/css/app.css create mode 100644 src/BackOffice/BackOffice/wwwroot/favicon.png create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/eot/IRANSansWeb(FaNum).eot create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/eot/IRANSansWeb(FaNum)_Black.eot create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/eot/IRANSansWeb(FaNum)_Bold.eot create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/eot/IRANSansWeb(FaNum)_Light.eot create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/eot/IRANSansWeb(FaNum)_Medium.eot create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/eot/IRANSansWeb(FaNum)_UltraLight.eot create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/ttf/IRANSansWeb(FaNum).ttf create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/ttf/IRANSansWeb(FaNum)_Black.ttf create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/ttf/IRANSansWeb(FaNum)_Bold.ttf create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/ttf/IRANSansWeb(FaNum)_Light.ttf create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/ttf/IRANSansWeb(FaNum)_Medium.ttf create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/ttf/IRANSansWeb(FaNum)_UltraLight.ttf create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/woff/IRANSansWeb(FaNum).woff create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/woff/IRANSansWeb(FaNum)_Black.woff create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/woff/IRANSansWeb(FaNum)_Bold.woff create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/woff/IRANSansWeb(FaNum)_Light.woff create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/woff/IRANSansWeb(FaNum)_Medium.woff create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/woff/IRANSansWeb(FaNum)_UltraLight.woff create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/woff2/IRANSansWeb(FaNum).woff2 create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/woff2/IRANSansWeb(FaNum)_Black.woff2 create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/woff2/IRANSansWeb(FaNum)_Bold.woff2 create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/woff2/IRANSansWeb(FaNum)_Light.woff2 create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/woff2/IRANSansWeb(FaNum)_Medium.woff2 create mode 100644 src/BackOffice/BackOffice/wwwroot/fonts/woff2/IRANSansWeb(FaNum)_UltraLight.woff2 create mode 100644 src/BackOffice/BackOffice/wwwroot/icon-192.png create mode 100644 src/BackOffice/BackOffice/wwwroot/icon-512.png create mode 100644 src/BackOffice/BackOffice/wwwroot/index.html create mode 100644 src/BackOffice/BackOffice/wwwroot/js/main.js create mode 100644 src/BackOffice/BackOffice/wwwroot/js/quill.js create mode 100644 src/BackOffice/BackOffice/wwwroot/manifest.json create mode 100644 src/BackOffice/BackOffice/wwwroot/service-worker.js create mode 100644 src/BackOffice/BackOffice/wwwroot/service-worker.published.js diff --git a/src/BackOffice/BackOffice.sln b/src/BackOffice/BackOffice.sln new file mode 100644 index 0000000..dbda81e --- /dev/null +++ b/src/BackOffice/BackOffice.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.10.35027.167 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BackOffice", "BackOffice\BackOffice.csproj", "{CD6DF182-2FBE-4C17-8B2C-CC25F488A8C0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CD6DF182-2FBE-4C17-8B2C-CC25F488A8C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CD6DF182-2FBE-4C17-8B2C-CC25F488A8C0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CD6DF182-2FBE-4C17-8B2C-CC25F488A8C0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CD6DF182-2FBE-4C17-8B2C-CC25F488A8C0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {43173B65-5703-4FEB-B360-0D88A0F9CA16} + EndGlobalSection +EndGlobal diff --git a/src/BackOffice/BackOffice/App.razor b/src/BackOffice/BackOffice/App.razor new file mode 100644 index 0000000..c93d097 --- /dev/null +++ b/src/BackOffice/BackOffice/App.razor @@ -0,0 +1,30 @@ +@using BackOffice.Shared +@using Microsoft.AspNetCore.Components.Authorization + + + + + + @{ + Task.Delay(0).ContinueWith(p => + { + try + { + Navigation.NavigateTo(RouteConstance.Login); + } + catch + { + } + }); + } + + + + + یافت نشد + +

آدرس مورد نظر یافت نشد

+
+
+
+
\ No newline at end of file diff --git a/src/BackOffice/BackOffice/BackOffice.csproj b/src/BackOffice/BackOffice/BackOffice.csproj new file mode 100644 index 0000000..34aaa22 --- /dev/null +++ b/src/BackOffice/BackOffice/BackOffice.csproj @@ -0,0 +1,45 @@ + + + + net7.0 + enable + enable + service-worker-assets.js + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/BackOffice/BackOffice/Common/BaseComponents/DateRangePicker.razor b/src/BackOffice/BackOffice/Common/BaseComponents/DateRangePicker.razor new file mode 100644 index 0000000..3dffecd --- /dev/null +++ b/src/BackOffice/BackOffice/Common/BaseComponents/DateRangePicker.razor @@ -0,0 +1,8 @@ + + + پاک کردن + لغو + تایید + + + diff --git a/src/BackOffice/BackOffice/Common/BaseComponents/DateRangePicker.razor.cs b/src/BackOffice/BackOffice/Common/BaseComponents/DateRangePicker.razor.cs new file mode 100644 index 0000000..754b321 --- /dev/null +++ b/src/BackOffice/BackOffice/Common/BaseComponents/DateRangePicker.razor.cs @@ -0,0 +1,66 @@ +using Microsoft.AspNetCore.Components; +using MudBlazor; +using System.Globalization; +using System.Reflection; + +namespace BackOffice.Common.BaseComponents; + +public partial class DateRangePicker +{ + private DateRange _dateRange = new(); + + private MudDateRangePicker _picker; + [Parameter] public string Label { get; set; } = "انتخاب بازه زمانی"; + [Parameter] public DateTime? DefaultStart { get; set; } + [Parameter] public DateTime? DefaultEnd { get; set; } + [Parameter] public EventCallback OnChanged { get; set; } + protected override void OnInitialized() + { + base.OnInitialized(); + if (DefaultStart.HasValue) + _dateRange.Start = DefaultStart.Value.Date; + + if (DefaultEnd.HasValue) + _dateRange.End = DefaultEnd.Value.Date; + } + public CultureInfo GetPersianCulture() + { + var culture = new CultureInfo("fa-IR"); + DateTimeFormatInfo formatInfo = culture.DateTimeFormat; + formatInfo.AbbreviatedDayNames = new[] { "ی", "د", "س", "چ", "پ", "ج", "ش" }; + formatInfo.DayNames = new[] { "یکشنبه", "دوشنبه", "سه شنبه", "چهار شنبه", "پنجشنبه", "جمعه", "شنبه" }; + var monthNames = new[] + { + "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", + "اسفند", + "", + }; + formatInfo.AbbreviatedMonthNames = + formatInfo.MonthNames = + formatInfo.MonthGenitiveNames = formatInfo.AbbreviatedMonthGenitiveNames = monthNames; + formatInfo.AMDesignator = "ق.ظ"; + formatInfo.PMDesignator = "ب.ظ"; + formatInfo.ShortDatePattern = "yyyy/MM/dd"; + formatInfo.LongDatePattern = "dddd, dd MMMM,yyyy"; + formatInfo.FirstDayOfWeek = DayOfWeek.Saturday; + Calendar cal = new PersianCalendar(); + FieldInfo fieldInfo = culture.GetType().GetField("calendar", BindingFlags.NonPublic | BindingFlags.Instance); + fieldInfo?.SetValue(culture, cal); + FieldInfo info = formatInfo.GetType().GetField("calendar", BindingFlags.NonPublic | BindingFlags.Instance); + info?.SetValue(formatInfo, cal); + culture.NumberFormat.NumberDecimalSeparator = "/"; + culture.NumberFormat.DigitSubstitution = DigitShapes.NativeNational; + culture.NumberFormat.NumberNegativePattern = 0; + return culture; + } + private async Task OnClickOK() + { + _picker.CloseAsync(); + await OnChanged.InvokeAsync(_picker.DateRange); + } + private async Task OnClickClear() + { + _picker.CloseAsync(); + await OnChanged.InvokeAsync(_picker.DateRange); + } +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Common/BaseComponents/Image.razor b/src/BackOffice/BackOffice/Common/BaseComponents/Image.razor new file mode 100644 index 0000000..0029ece --- /dev/null +++ b/src/BackOffice/BackOffice/Common/BaseComponents/Image.razor @@ -0,0 +1,12 @@ +@using MudBlazor +@inherits MudImage + +@if (string.IsNullOrWhiteSpace(src)) +{ + +} +else +{ + +} + diff --git a/src/BackOffice/BackOffice/Common/BaseComponents/Image.razor.cs b/src/BackOffice/BackOffice/Common/BaseComponents/Image.razor.cs new file mode 100644 index 0000000..9389eed --- /dev/null +++ b/src/BackOffice/BackOffice/Common/BaseComponents/Image.razor.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Web; +using MudBlazor; + +namespace BackOffice.Common.BaseComponents +{ + + public partial class Image + { + private string src = string.Empty; + [Parameter] public EventCallback OnClick { get; set; } + protected override async Task OnParametersSetAsync() + { + await base.OnParametersSetAsync(); + + if (!string.IsNullOrWhiteSpace(Src)) + { + src = Src.Contains("data:") ? Src : "https://dl.afrino.co" + Src; + } + + } + //protected override async Task OnAfterRenderAsync(bool firstRender) + //{ + // await base.OnAfterRenderAsync(firstRender); + // if (firstRender) + // { + // if (!string.IsNullOrWhiteSpace(Src)) + // { + // src = await FileManagement.GetFileBase64(Src); + // StateHasChanged(); + // } + // } + //} + } +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Common/Configure/ConfigureService.cs b/src/BackOffice/BackOffice/Common/Configure/ConfigureService.cs new file mode 100644 index 0000000..a62e1ba --- /dev/null +++ b/src/BackOffice/BackOffice/Common/Configure/ConfigureService.cs @@ -0,0 +1,93 @@ + +using BackOffice.BFF.Package.Protobuf.Protos.Package; +using BackOffice.Common.Utilities; +using Blazored.LocalStorage; +using Google.Protobuf.Reflection; +using Grpc.Core; +using Grpc.Core.Interceptors; +using Grpc.Net.Client; +using Grpc.Net.Client.Web; +using Microsoft.AspNetCore.Components.Authorization; +using Microsoft.AspNetCore.Components.WebAssembly.Authentication; +using MudBlazor.Services; +using System.Text.Json; +using System.Text.Json.Serialization; +using static MudBlazor.Colors; + + +namespace Microsoft.Extensions.DependencyInjection; + +public static class ConfigureServices +{ + public static IServiceCollection AddCommonServices(this IServiceCollection services, IConfiguration configuration) + { + services.AddBlazoredLocalStorageAsSingleton(config => + { + config.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.CamelCase; + config.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; + config.JsonSerializerOptions.IgnoreReadOnlyProperties = true; + config.JsonSerializerOptions.PropertyNameCaseInsensitive = true; + config.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; + config.JsonSerializerOptions.ReadCommentHandling = JsonCommentHandling.Skip; + config.JsonSerializerOptions.WriteIndented = false; + }); + services.AddAuthorizationCore(); + services.AddScoped(); + services.AddSingleton(); + services.AddSingleton(); + services.AddMudServices(); + services.AddGrpcServices(configuration); + return services; + } + + + + public static IServiceCollection AddGrpcServices(this IServiceCollection services, IConfiguration configuration) // + { + var baseUri = configuration["GwUrl"]; + Console.WriteLine(); + Console.WriteLine(baseUri); + var httpClient = new HttpClient(new GrpcWebHandler(GrpcWebMode.GrpcWeb, new HttpClientHandler())); + httpClient.Timeout = TimeSpan.FromMinutes(10); // TODO Check Timeout + var serviceProvider = services.BuildServiceProvider(); + var channel = CreateAuthenticatedChannel(baseUri, httpClient, serviceProvider); + + + + services.AddTransient(sp => new PackageContract.PackageContractClient(channel)); + //services.AddTransient(sp => new OtpContract.OtpContractClient(channel)); + + return services; + } + + private static CallInvoker CreateAuthenticatedChannel(string address, HttpClient httpClient, IServiceProvider serviceProvider) + { + var credentials = CallCredentials.FromInterceptor(async (context, metadata) => + { + var provider = serviceProvider.GetRequiredService(); + // var accessToken = await provider.RequestAccessToken(); + // accessToken.TryGetToken(out var token); + var token = await provider.GetTokenAsync(); + if (!string.IsNullOrEmpty(token)) + { + // Console.WriteLine($"Authorization Bearer {token.Value}"); + metadata.Add("Authorization", $"Bearer {token}"); + } + + await Task.CompletedTask; + }); + + // SslCredentials is used here because this channel is using TLS. + // CallCredentials can't be used with ChannelCredentials.Insecure on non-TLS channels. + var channel = GrpcChannel.ForAddress(address, new GrpcChannelOptions + { + UnsafeUseInsecureChannelCallCredentials = true, + Credentials = ChannelCredentials.Create(new SslCredentials(), credentials), + HttpClient = httpClient, + MaxReceiveMessageSize = 1000 * 1024 * 1024, // 1 GB + MaxSendMessageSize = 1000 * 1024 * 1024 // 1 GB + }); + var invoker = channel.Intercept(new ErrorHandlerInterceptor()); + return invoker; + } +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Common/Models/WorkHoursDto.cs b/src/BackOffice/BackOffice/Common/Models/WorkHoursDto.cs new file mode 100644 index 0000000..a993d2c --- /dev/null +++ b/src/BackOffice/BackOffice/Common/Models/WorkHoursDto.cs @@ -0,0 +1,14 @@ +namespace BackOffice.Common.Models; + +public class WorkHoursDto +{ + public string Title { get; set; } + public string Name { get; set; } + public bool Closed { get; set; } + public List Hours { get; set; } +} +public class Hours +{ + public string OpenTime { get; set; } + public string CloseTime { get; set; } +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Common/Utilities/ApiAuthenticationStateProvider.cs b/src/BackOffice/BackOffice/Common/Utilities/ApiAuthenticationStateProvider.cs new file mode 100644 index 0000000..4a4304a --- /dev/null +++ b/src/BackOffice/BackOffice/Common/Utilities/ApiAuthenticationStateProvider.cs @@ -0,0 +1,54 @@ +using System.IdentityModel.Tokens.Jwt; +using System.Security.Claims; +using System.Text.Json; +using Blazored.LocalStorage; +using Microsoft.AspNetCore.Components.Authorization; + +namespace BackOffice.Common.Utilities; + +public class ApiAuthenticationStateProvider : AuthenticationStateProvider +{ + private readonly ILocalStorageService _localStorage; + + public ApiAuthenticationStateProvider(ILocalStorageService localStorage) + { + _localStorage = localStorage; + } + public override async Task GetAuthenticationStateAsync() + { + try + { + + var savedToken = await _localStorage.GetItemAsync(GlobalConstants.JwtTokenKey); + if (string.IsNullOrWhiteSpace(savedToken)) + { + return new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity())); + } + var handler = new JwtSecurityTokenHandler(); + var token = handler.ReadJwtToken(savedToken); + + + var AuthenticationState = new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity(token.Claims, "jwt"))); + + return AuthenticationState; + } + catch (Exception ex) + { + return new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity())); + } + } + + public void MarkUserAsAuthenticated(string email) + { + var authenticatedUser = new ClaimsPrincipal(new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, email) }, "apiauth")); + var authState = Task.FromResult(new AuthenticationState(authenticatedUser)); + NotifyAuthenticationStateChanged(authState); + } + + public void MarkUserAsLoggedOut() + { + var anonymousUser = new ClaimsPrincipal(new ClaimsIdentity()); + var authState = Task.FromResult(new AuthenticationState(anonymousUser)); + NotifyAuthenticationStateChanged(authState); + } +} diff --git a/src/BackOffice/BackOffice/Common/Utilities/AppTokenProvider.cs b/src/BackOffice/BackOffice/Common/Utilities/AppTokenProvider.cs new file mode 100644 index 0000000..6abbf8e --- /dev/null +++ b/src/BackOffice/BackOffice/Common/Utilities/AppTokenProvider.cs @@ -0,0 +1,27 @@ +using BackOffice.Common.Utilities; +using Blazored.LocalStorage; + +namespace BackOffice.Common.Utilities; + +public class AppTokenProvider : ITokenProvider +{ + private readonly ILocalStorageService _localStorage; + private string _token; + + public AppTokenProvider(ILocalStorageService localStorage) + { + _localStorage = localStorage; + } + + public async Task GetTokenAsync() + { + if (_token == null) + { + var authorizationToken = await _localStorage.GetItemAsync(GlobalConstants.JwtTokenKey); + if (!string.IsNullOrEmpty(authorizationToken)) + _token = authorizationToken.ToString().Replace("Bearer ", ""); + } + + return _token; + } +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Common/Utilities/Enums.cs b/src/BackOffice/BackOffice/Common/Utilities/Enums.cs new file mode 100644 index 0000000..aeb2b70 --- /dev/null +++ b/src/BackOffice/BackOffice/Common/Utilities/Enums.cs @@ -0,0 +1,17 @@ +using Google.Protobuf.Reflection; +using System.ComponentModel.DataAnnotations; + +namespace BackOffice.Common.Utilities; + +public class Enums +{ + public enum PrivacyTypeEnum + { + [Display(Name = "شخصی")] + Individual, + [Display(Name = "گروهی")] + Group, + [Display(Name = "همه")] + All + } +} diff --git a/src/BackOffice/BackOffice/Common/Utilities/ErrorHandlerInterceptor.cs b/src/BackOffice/BackOffice/Common/Utilities/ErrorHandlerInterceptor.cs new file mode 100644 index 0000000..a8aeb80 --- /dev/null +++ b/src/BackOffice/BackOffice/Common/Utilities/ErrorHandlerInterceptor.cs @@ -0,0 +1,35 @@ +using Grpc.Core.Interceptors; +using Grpc.Core; + +namespace BackOffice.Common.Utilities; + +public class ErrorHandlerInterceptor : Interceptor +{ + public override AsyncUnaryCall AsyncUnaryCall( + TRequest request, + ClientInterceptorContext context, + AsyncUnaryCallContinuation continuation) + { + var call = continuation(request, context); + + return new AsyncUnaryCall( + HandleResponse(call.ResponseAsync), + call.ResponseHeadersAsync, + call.GetStatus, + call.GetTrailers, + call.Dispose); + } + + private async Task HandleResponse(Task inner) + { + try + { + return await inner; + } + catch (Exception ex) + { + GlobalConstants.ConstSnackbar.Add(ex.Message, severity: MudBlazor.Severity.Error); + throw; + } + } +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Common/Utilities/Extensions.cs b/src/BackOffice/BackOffice/Common/Utilities/Extensions.cs new file mode 100644 index 0000000..d4c2617 --- /dev/null +++ b/src/BackOffice/BackOffice/Common/Utilities/Extensions.cs @@ -0,0 +1,195 @@ +using HtmlAgilityPack; +using System; +using System.ComponentModel.DataAnnotations; +using System.Globalization; +using System.Net; +using System.Reflection; +using System.Text.RegularExpressions; + +namespace BackOffice.Common.Utilities; + +public static class Extensions +{ + public static string ExtractUserFriendlyMessage(this string errorMessage) + { + // کلیدواژه‌ای که بعد از آن بخش مورد نظر شروع می‌شود + string keyword = "Exception:"; + + // بررسی وجود کلیدواژه در پیام خطا + int keywordIndex = errorMessage.IndexOf(keyword); + + if (keywordIndex >= 0) + { + // استخراج بخش بعد از کلیدواژه + string userFriendlyMessage = errorMessage.Substring(keywordIndex + keyword.Length).Trim(); + if (userFriendlyMessage.EndsWith(")")) + { + userFriendlyMessage = userFriendlyMessage.Substring(0, userFriendlyMessage.Length - 2); + } + return userFriendlyMessage; + } + + // اگر کلیدواژه وجود نداشت، کل پیام خطا برگردانده شود + return errorMessage; + } + public static string ToDashString(this string? text) => string.IsNullOrWhiteSpace(text) ? "-" : text; + public static string ToThousands(this double? digit) => digit == null ? "0" : digit.Value.ToString("N0"); + public static string ToThousands(this float? digit) => digit == null ? "0" : digit.Value.ToString("N0"); + public static string ToThousands(this int? digit) => digit == null ? "0" : digit.Value.ToString("N0"); + public static string ToThousands(this long? digit) => digit == null ? "0" : digit.Value.ToString("N0"); + public static string ToThousands(this double digit) => digit.ToString("N0"); + public static string ToThousands(this float digit) => digit.ToString("N0"); + public static string ToThousands(this int digit) => digit.ToString("N0"); + public static string ToThousands(this long digit) => digit.ToString("N0"); + public static string ToCurrency(this string price) => price + " ریال"; + public static DateTime UnixTimeStampToDateTime(this long unixTimeStamp) + { + // Unix timestamp is seconds past epoch + DateTime dateTime = new(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); + dateTime = dateTime.AddMilliseconds(unixTimeStamp).ToLocalTime(); + return dateTime; + } + public static string PersianToEnglish(this string persianStr) + { + return persianStr.Replace("۰", "0") + .Replace("۱", "1") + .Replace("۲", "2") + .Replace("۳", "3") + .Replace("۴", "4") + .Replace("۵", "5") + .Replace("۶", "6") + .Replace("۷", "7") + .Replace("۸", "8") + .Replace("۹", "9"); + } + public static string ArabicToPersian(this string arabicStr) + { + return arabicStr + .Replace("ک", "ك") + .Replace("ی", "ي"); + } + public static string Truncate(this string value, int maxLength, bool isAppendDots = false) + { + if (string.IsNullOrEmpty(value)) return value; + return value.Length <= maxLength ? value : isAppendDots ? value.Substring(0, maxLength) + "..." : value.Substring(0, maxLength); + } + + public static string DiffDateTime(this DateTime dateTime) + { + const int SECOND = 1; + const int MINUTE = 60 * SECOND; + const int HOUR = 60 * MINUTE; + const int DAY = 24 * HOUR; + const int MONTH = 30 * DAY; + var ts = new TimeSpan(DateTime.Now.Ticks - dateTime.Ticks); + double delta = Math.Abs(ts.TotalSeconds); + if (delta < 1 * MINUTE) + { + return ts.Seconds == 1 ? "لحظه ای قبل" : ts.Seconds + " ثانیه قبل"; + } + if (delta < 2 * MINUTE) + { + return "یک دقیقه قبل"; + } + if (delta < 45 * MINUTE) + { + return ts.Minutes + " دقیقه قبل"; + } + if (delta < 90 * MINUTE) + { + return "یک ساعت قبل"; + } + if (delta < 24 * HOUR) + { + return ts.Hours + " ساعت قبل"; + } + if (delta < 48 * HOUR) + { + return "دیروز"; + } + if (delta < 30 * DAY) + { + return ts.Days + " روز قبل"; + } + if (delta < 12 * MONTH) + { + int months = Convert.ToInt32(Math.Floor((double)ts.Days / 30)); + return months <= 1 ? "یک ماه قبل" : months + " ماه قبل"; + } + int years = Convert.ToInt32(Math.Floor((double)ts.Days / 365)); + return years <= 1 ? "یک سال قبل" : years + " سال قبل"; + } + public static bool GenericEquals(this T value1, T value2) + { + if (value1 == null && value2 == null) + return true; + + if (value1 != null && value2 == null || value1 == null && value2 != null) + return false; + + foreach (var item in value1.GetType().GetProperties()) + { + var val1 = item.GetValue(value1); + var val2 = value2.GetType().GetProperty(item.Name).GetValue(value2); + + if (Convert.GetTypeCode(val1) == TypeCode.Object) + continue; + + var strVal = Convert.ToString(val1); + var strVal2 = Convert.ToString(val2); + if (!strVal.Equals(strVal2)) + { + return false; + } + } + + return true; + } + + public static string GetDisplayName(this Enum enumValue) + { + try + { + return enumValue.GetType().GetMember(enumValue.ToString()).First().GetCustomAttribute()?.GetName(); + } + catch (Exception ex) + { + return ""; + } + } + public static void ChangeLoading(ref bool loading, ref bool toLoading) + { + loading = toLoading; + } + //public static bool IsValidURL(this string source) + //{ + // Uri uri = null; + // if (!Uri.TryCreate(source, UriKind.Absolute, out uri) || null == uri) + // return false; + // else + // return true; + //} + public static bool IsValidUrl(this string webSiteUrl) + { + if (webSiteUrl.StartsWith("www.")) + { + webSiteUrl = "http://" + webSiteUrl; + } + + return Uri.TryCreate(webSiteUrl, UriKind.Absolute, out Uri uriResult) + && (uriResult.Scheme == Uri.UriSchemeHttp + || uriResult.Scheme == Uri.UriSchemeHttps) && uriResult.Host.Replace("www.", "").Split('.').Count() > 1 && uriResult.HostNameType == UriHostNameType.Dns && uriResult.Host.Length > uriResult.Host.LastIndexOf(".") + 1 && 100 >= webSiteUrl.Length; + } + + public static string HtmlToText(this string html) + { + if (string.IsNullOrWhiteSpace(html)) + return string.Empty; + + HtmlDocument doc = new HtmlDocument(); + doc.LoadHtml(html); + string text = doc.DocumentNode.InnerText; + + return WebUtility.HtmlDecode(text).Trim(); // ← این خط مهمه + } +} diff --git a/src/BackOffice/BackOffice/Common/Utilities/GlobalConstants.cs b/src/BackOffice/BackOffice/Common/Utilities/GlobalConstants.cs new file mode 100644 index 0000000..7d48134 --- /dev/null +++ b/src/BackOffice/BackOffice/Common/Utilities/GlobalConstants.cs @@ -0,0 +1,13 @@ +using MudBlazor; + +namespace BackOffice.Common.Utilities; + +public static class GlobalConstants +{ + public const string DateFormat = "MMM dd, yyyy"; + public const string DateTimeFormat = "MMM dd, yyyy - HH:mm"; + public static string JwtTokenKey = "AuthToken"; + public const string SuccessMsg = "با موفقیت انجام شد"; + public static ISnackbar ConstSnackbar; + +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Common/Utilities/ITokenProvider.cs b/src/BackOffice/BackOffice/Common/Utilities/ITokenProvider.cs new file mode 100644 index 0000000..6fe3ff0 --- /dev/null +++ b/src/BackOffice/BackOffice/Common/Utilities/ITokenProvider.cs @@ -0,0 +1,7 @@ +namespace BackOffice.Common.Utilities; + +public interface ITokenProvider +{ + Task GetTokenAsync(); +} + diff --git a/src/BackOffice/BackOffice/Common/Utilities/RouteConstance.cs b/src/BackOffice/BackOffice/Common/Utilities/RouteConstance.cs new file mode 100644 index 0000000..32de4da --- /dev/null +++ b/src/BackOffice/BackOffice/Common/Utilities/RouteConstance.cs @@ -0,0 +1,9 @@ +namespace BackOffice.Common.Utilities; + +public static class RouteConstance +{ + public const string HomePage = "/"; + public const string Login = "/Login/"; + public const string VerifyCodePage = "/VerifyCodePage/"; + public const string Package = "/PackagePage/"; +} diff --git a/src/BackOffice/BackOffice/Common/Utilities/TokenHandler.cs b/src/BackOffice/BackOffice/Common/Utilities/TokenHandler.cs new file mode 100644 index 0000000..175be13 --- /dev/null +++ b/src/BackOffice/BackOffice/Common/Utilities/TokenHandler.cs @@ -0,0 +1,52 @@ +using System.IdentityModel.Tokens.Jwt; +using System.Linq; +using System.Security.Claims; + +namespace BackOffice.Common.Utilities; + +public interface ITokenHandler +{ + bool IsDifferent(string oldToken, string newToken); + bool IsBlocked(string newToken); + IEnumerable GetUserClaims(string token); +} +public class TokenHandler : ITokenHandler +{ + public bool IsDifferent(string oldToken, string newToken) + { + oldToken = oldToken.Replace("\"", ""); + newToken = newToken.Replace("\"", ""); + var handler = new JwtSecurityTokenHandler(); + var oldJwtSecurityToken = handler.ReadJwtToken(oldToken); + var newJwtSecurityToken = handler.ReadJwtToken(newToken); + if (newJwtSecurityToken.Claims.Count() != oldJwtSecurityToken.Claims.Count()) + return true; + + int differences = 0; + foreach (var claim in oldJwtSecurityToken.Claims) + { + if (claim.Type == "exp") + continue; + if (!newJwtSecurityToken.Claims.Any(x => x.Type == claim.Type && x.Value == claim.Value)) + { + differences++; + } + } + return differences > 0; + } + public bool IsBlocked(string newToken) + { + newToken = newToken.Replace("\"", ""); + var handler = new JwtSecurityTokenHandler(); + var newJwtSecurityToken = handler.ReadJwtToken(newToken); + return newJwtSecurityToken.Claims.Any(x => x.Type == "IsBlocked" && x.Value == "True"); + } + + public IEnumerable GetUserClaims(string token) + { + token = token.Replace("\"", ""); + var handler = new JwtSecurityTokenHandler(); + var newJwtSecurityToken = handler.ReadJwtToken(token); + return newJwtSecurityToken.Claims; + } +} diff --git a/src/BackOffice/BackOffice/Common/Utilities/UrlUtility.cs b/src/BackOffice/BackOffice/Common/Utilities/UrlUtility.cs new file mode 100644 index 0000000..ebdfe3d --- /dev/null +++ b/src/BackOffice/BackOffice/Common/Utilities/UrlUtility.cs @@ -0,0 +1,6 @@ +namespace BackOffice.Common.Utilities; + +public static class UrlUtility +{ + public static string DownloadUrl { get; set; } +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Pages/Index.razor b/src/BackOffice/BackOffice/Pages/Index.razor new file mode 100644 index 0000000..359d7ee --- /dev/null +++ b/src/BackOffice/BackOffice/Pages/Index.razor @@ -0,0 +1,3 @@ +@page "/" +@attribute [AllowAnonymous] +

Hello, world!

diff --git a/src/BackOffice/BackOffice/Pages/Login/LoginPage.razor b/src/BackOffice/BackOffice/Pages/Login/LoginPage.razor new file mode 100644 index 0000000..21bb927 --- /dev/null +++ b/src/BackOffice/BackOffice/Pages/Login/LoginPage.razor @@ -0,0 +1,21 @@ +@using BackOffice.Shared; +@layout EmptyLayout +@attribute [Route(RouteConstance.Login)] +@attribute [AllowAnonymous] + + + + + + + + + ارسال کد + + + + + + + + diff --git a/src/BackOffice/BackOffice/Pages/Login/LoginPage.razor.cs b/src/BackOffice/BackOffice/Pages/Login/LoginPage.razor.cs new file mode 100644 index 0000000..6f7c8d0 --- /dev/null +++ b/src/BackOffice/BackOffice/Pages/Login/LoginPage.razor.cs @@ -0,0 +1,41 @@ +using BackOffice.BFF.Otp.Protobuf.Protos.Otp; +using BackOffice.BFF.Otp.Protobuf.Validator; +using BackOffice.Common.Utilities; +using Microsoft.AspNetCore.Components; +using MudBlazor; + +namespace BackOffice.Pages.Login; +public partial class LoginPage +{ + private bool _isLoading; + private SendOtpRequest _request = new(); + private SendOtpRequestValidator _requestValidator = new(); + private MudForm _form; + + [Inject] public OtpContract.OtpContractClient OtpContract { get; set; } + private async Task OnSubmitClick() + { + Console.WriteLine(OtpContract == null); + await _form.Validate(); + if (!_form.IsValid) + return; + + _isLoading = true; + StateHasChanged(); + + _request.Mobile = _request.Mobile.PersianToEnglish(); + try + { + await OtpContract.SendOtpAsync(_request); + Navigation.NavigateTo(RouteConstance.VerifyCodePage + _request.Mobile); + } + catch (Exception ex) + { + Snackbar.Add(message: ex.Message, severity: Severity.Error, null); + } + + _isLoading = false; + StateHasChanged(); + + } +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Pages/Login/VerifyCodePage.razor b/src/BackOffice/BackOffice/Pages/Login/VerifyCodePage.razor new file mode 100644 index 0000000..353d273 --- /dev/null +++ b/src/BackOffice/BackOffice/Pages/Login/VerifyCodePage.razor @@ -0,0 +1,20 @@ +@using BackOffice.Shared +@layout EmptyLayout +@attribute [Route(RouteConstance.VerifyCodePage + "{Mobile}")] +@attribute [AllowAnonymous] + + + + + + + + ورود به حساب کاربری + @(_currentCount < 1 ? "ارسال مجدد رمز پویا" : $"ارسال مجدد رمز پویا {_currentCount}") + + + + + + + diff --git a/src/BackOffice/BackOffice/Pages/Login/VerifyCodePage.razor.cs b/src/BackOffice/BackOffice/Pages/Login/VerifyCodePage.razor.cs new file mode 100644 index 0000000..2e78f39 --- /dev/null +++ b/src/BackOffice/BackOffice/Pages/Login/VerifyCodePage.razor.cs @@ -0,0 +1,97 @@ +using BackOffice.BFF.Otp.Protobuf.Protos.Otp; +using BackOffice.BFF.Otp.Protobuf.Validator; +using BackOffice.Common.Utilities; +using Blazored.LocalStorage; +using Microsoft.AspNetCore.Components; +using MudBlazor; + +namespace BackOffice.Pages.Login; +public partial class VerifyCodePage +{ + [Parameter] + public string Mobile { get; set; } + + private bool _isLoading; + private VerifyOtpCodeRequest _request = new(); + private VerifyOtpCodeRequestValidator _requestValidator = new(); + private MudForm _form; + private Timer _timer; + private int _currentCount = 120; + + [Inject] + public OtpContract.OtpContractClient OtpContract { get; set; } + + protected override void OnInitialized() + { + StartTimer(); + } + private async Task OnSubmitClick() + { + await _form.Validate(); + if (!_form.IsValid) + return; + + _isLoading = true; + StateHasChanged(); + + _request.Mobile = Mobile.PersianToEnglish(); + _request.Code = _request.Code.PersianToEnglish(); + + try + { + var token = await OtpContract.VerifyOtpCodeAsync(_request); + await LocalStorageService.SetItemAsync(GlobalConstants.JwtTokenKey, token.Token); + Navigation.NavigateTo(RouteConstance.HomePage, forceLoad: true); + } + catch (Exception ex) + { + Snackbar.Add(message: ex.Message, severity: Severity.Error, null); + } + + _isLoading = false; + StateHasChanged(); + + + } + private async Task OnResendOtpClick() + { + _isLoading = true; + StateHasChanged(); + + try + { + await OtpContract.SendOtpAsync(request: new() + { + Mobile = Mobile + }); + StartTimer(); + } + catch (Exception ex) + { + Snackbar.Add(message: ex.Message, severity: Severity.Error, null); + } + + _isLoading = false; + StateHasChanged(); + } + + private void StartTimer() + { + _currentCount = 120; + _timer = new Timer(new TimerCallback(_ => + { + if (_currentCount > 0) + { + _currentCount--; + InvokeAsync(() => + { + StateHasChanged(); + }); + } + else + { + _timer.Dispose(); + } + }), null, 1000, 1000); + } +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Pages/Package/Components/CreateDialog.razor b/src/BackOffice/BackOffice/Pages/Package/Components/CreateDialog.razor new file mode 100644 index 0000000..4c95014 --- /dev/null +++ b/src/BackOffice/BackOffice/Pages/Package/Components/CreateDialog.razor @@ -0,0 +1,55 @@ +@using BackOffice.BFF.Package.Protobuf.Protos.Package +@using BackOffice.Common.BaseComponents +@using Microsoft.AspNetCore.Components.Forms +@using Tizzani.MudBlazor.HtmlEditor + + + + + + + + + + + انتخاب تصویر + + + + @if (context != null) + { + + + @context.Name + + + } + else + { + فایلی انتخاب نشده + } + + + + + + + + + + + + + + + + لغو + ثبت + + + diff --git a/src/BackOffice/BackOffice/Pages/Package/Components/CreateDialog.razor.cs b/src/BackOffice/BackOffice/Pages/Package/Components/CreateDialog.razor.cs new file mode 100644 index 0000000..2e3612e --- /dev/null +++ b/src/BackOffice/BackOffice/Pages/Package/Components/CreateDialog.razor.cs @@ -0,0 +1,83 @@ +using BackOffice.BFF.Package.Protobuf.Protos.Package; +using Google.Protobuf; +using Grpc.Core; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Forms; +using MudBlazor; + +namespace BackOffice.Pages.Package.Components; + +public partial class CreateDialog +{ + [Inject] public PackageContract.PackageContractClient PackageContract { get; set; } + [Parameter] public CreateNewPackageRequest Model { get; set; } = new(); + [CascadingParameter] MudDialogInstance MudDialog { get; set; } + + private bool _isLoading = false; + private string _srcImage = "data:image/png;base64,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"; + private IBrowserFile? _imageFile; + private long _maxAllowedSize = (1024 * 1024) * 200; + + private async Task OnImageFileSelect(IBrowserFile? file) + { + _imageFile = file; + var buffer = new byte[file.Size]; + await file.OpenReadStream().ReadAsync(buffer); + _srcImage = $"data:{file.ContentType};base64," + Convert.ToBase64String(buffer); + StateHasChanged(); + } + public async void CallCreateMethod() + { + _isLoading = true; + StateHasChanged(); + + if (string.IsNullOrWhiteSpace(Model.Title)) + { + Snackbar.Add("لطفا عنوان را وارد کنید!", Severity.Warning); + _isLoading = false; + StateHasChanged(); + return; + } + if (string.IsNullOrWhiteSpace(Model.Description)) + { + Snackbar.Add("لطفا توضیحات را وارد کنید!", Severity.Warning); + _isLoading = false; + StateHasChanged(); + return; + } + if (_imageFile == null) + { + Snackbar.Add("لطفا تصویر را انتخاب کنید!", Severity.Warning); + _isLoading = false; + StateHasChanged(); + return; + } + else + { + var imageBuffers = new byte[_imageFile.Size]; + await _imageFile.OpenReadStream(_maxAllowedSize).ReadAsync(imageBuffers); + Model.ImageFile = new() + { + File = ByteString.CopyFrom(imageBuffers), + Mime = _imageFile.ContentType, + FileName = Path.GetFileNameWithoutExtension(_imageFile.Name) + }; + } + try + { + await PackageContract.CreateNewPackageAsync(Model); + Submit(); + + } + catch (RpcException ex) + { + Console.WriteLine(ex); + Snackbar.Add("خطای سرور", Severity.Error); + } + + _isLoading = false; + StateHasChanged(); + } + void Submit() => MudDialog.Close(DialogResult.Ok(true)); + void Cancel() => MudDialog.Cancel(); +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Pages/Package/Components/PackageDataTable.razor b/src/BackOffice/BackOffice/Pages/Package/Components/PackageDataTable.razor new file mode 100644 index 0000000..cab0cbf --- /dev/null +++ b/src/BackOffice/BackOffice/Pages/Package/Components/PackageDataTable.razor @@ -0,0 +1,75 @@ +@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/BackOffice/Pages/Package/Components/PackageDataTable.razor.cs b/src/BackOffice/BackOffice/Pages/Package/Components/PackageDataTable.razor.cs new file mode 100644 index 0000000..18124bb --- /dev/null +++ b/src/BackOffice/BackOffice/Pages/Package/Components/PackageDataTable.razor.cs @@ -0,0 +1,74 @@ +using BackOffice.BFF.Package.Protobuf.Protos.Package; +using Google.Protobuf.WellKnownTypes; +using HtmlAgilityPack; +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 +{ + + [Inject] public PackageContract.PackageContractClient PackageContract { get; set; } + private bool _isLoading = true; + private MudDataGrid _gridData; + + private GetAllPackageByFilterRequest _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; + + var result = await PackageContract.GetAllPackageByFilterAsync(_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(); + } + public async Task Update(DataModel model) + { + var parameters = new DialogParameters { { x => x.Model, model.Adapt() } }; + + var dialog = await DialogService.ShowAsync($"ویرایش پکیج", parameters, new DialogOptions() { CloseButton = true, FullWidth = true, MaxWidth = MaxWidth.Small }); + var result = await dialog.Result; + + if (!result.Canceled) + { + ReLoadData(); + //Reload Data + Snackbar.Add("عملیات با موفقیت انجام شد", Severity.Success); + + } + } + 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 PackageContract.DeletePackageAsync(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/BackOffice/Pages/Package/Components/UpdateDialog.razor b/src/BackOffice/BackOffice/Pages/Package/Components/UpdateDialog.razor new file mode 100644 index 0000000..9520c8f --- /dev/null +++ b/src/BackOffice/BackOffice/Pages/Package/Components/UpdateDialog.razor @@ -0,0 +1,55 @@ +@using BackOffice.BFF.Package.Protobuf.Protos.Package +@using BackOffice.Common.BaseComponents +@using Microsoft.AspNetCore.Components.Forms +@using Tizzani.MudBlazor.HtmlEditor + + + + + + + + + + + + انتخاب تصویر + + + + @if (context != null) + { + + + @context.Name + + + } + else + { + فایلی انتخاب نشده + } + + + + + + + + + + + + + + + لغو + ثبت + + + diff --git a/src/BackOffice/BackOffice/Pages/Package/Components/UpdateDialog.razor.cs b/src/BackOffice/BackOffice/Pages/Package/Components/UpdateDialog.razor.cs new file mode 100644 index 0000000..31ce4f9 --- /dev/null +++ b/src/BackOffice/BackOffice/Pages/Package/Components/UpdateDialog.razor.cs @@ -0,0 +1,84 @@ +using BackOffice.BFF.Package.Protobuf.Protos.Package; +using Google.Protobuf; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Forms; +using MudBlazor; + +namespace BackOffice.Pages.Package.Components +{ + public partial class UpdateDialog + { + private bool _isLoading = false; + [Inject] public PackageContract.PackageContractClient PackageContract { get; set; } + + [Parameter] + public UpdatePackageRequest Model { get; set; } = new(); + + [CascadingParameter] + MudDialogInstance MudDialog { get; set; } + private string _srcImage = "data:image/png;base64,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"; + private IBrowserFile? _imageFile; + private long _maxAllowedSize = (1024 * 1024) * 200; + + private async Task OnImageFileSelect(IBrowserFile? file) + { + _imageFile = file; + var buffer = new byte[file.Size]; + await file.OpenReadStream().ReadAsync(buffer); + _srcImage = $"data:{file.ContentType};base64," + Convert.ToBase64String(buffer); + StateHasChanged(); + } + protected override async Task OnInitializedAsync() + { + await base.OnInitializedAsync(); + _srcImage = Model.ImagePath; + } + public async void CallUpdateMethod() + { + _isLoading = true; + StateHasChanged(); + if (string.IsNullOrWhiteSpace(Model.Title)) + { + Snackbar.Add("لطفا عنوان را وارد کنید!", Severity.Warning); + _isLoading = false; + StateHasChanged(); + return; + } + if (string.IsNullOrWhiteSpace(Model.Description)) + { + Snackbar.Add("لطفا توضیحات را وارد کنید!", Severity.Warning); + _isLoading = false; + StateHasChanged(); + return; + } + if (_imageFile != null) + { + var imageBuffers = new byte[_imageFile.Size]; + await _imageFile.OpenReadStream(_maxAllowedSize).ReadAsync(imageBuffers); + Model.ImageFile = new() + { + File = ByteString.CopyFrom(imageBuffers), + Mime = _imageFile.ContentType, + FileName = Path.GetFileNameWithoutExtension(_imageFile.Name) + }; + } + + try + { + await PackageContract.UpdatePackageAsync(Model); + Submit(); + + } + catch (Exception) + { + Snackbar.Add("خطای سرور", Severity.Error); + } + + _isLoading = false; + StateHasChanged(); + } + + void Submit() => MudDialog.Close(DialogResult.Ok(true)); + void Cancel() => MudDialog.Cancel(); + } +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Pages/Package/PackageMainPage.razor b/src/BackOffice/BackOffice/Pages/Package/PackageMainPage.razor new file mode 100644 index 0000000..a88eec4 --- /dev/null +++ b/src/BackOffice/BackOffice/Pages/Package/PackageMainPage.razor @@ -0,0 +1,36 @@ +@attribute [Route(RouteConstance.Package)] + +@using BackOffice.BFF.Package.Protobuf.Protos.Package +@using BackOffice.Pages.Package.Components + + + + + مدیریت پکیج + + افزودن + + + + + + + +@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/BackOffice/Program.cs b/src/BackOffice/BackOffice/Program.cs new file mode 100644 index 0000000..b4d8ae5 --- /dev/null +++ b/src/BackOffice/BackOffice/Program.cs @@ -0,0 +1,15 @@ +using BackOffice; +using Microsoft.AspNetCore.Components.Web; +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; +using Microsoft.Extensions.DependencyInjection; +using MudBlazor.Services; + +var builder = WebAssemblyHostBuilder.CreateDefault(args); +builder.RootComponents.Add("#app"); +builder.RootComponents.Add("head::after"); +builder.Services.AddCommonServices(builder.Configuration); + +builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); + + +await builder.Build().RunAsync(); diff --git a/src/BackOffice/BackOffice/Properties/launchSettings.json b/src/BackOffice/BackOffice/Properties/launchSettings.json new file mode 100644 index 0000000..b6b4bdb --- /dev/null +++ b/src/BackOffice/BackOffice/Properties/launchSettings.json @@ -0,0 +1,38 @@ +{ + "iisSettings": { + "iisExpress": { + "applicationUrl": "http://localhost:21136", + "sslPort": 44321 + } + }, + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + "applicationUrl": "http://localhost:5018", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + "applicationUrl": "https://localhost:7106;http://localhost:5018", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/src/BackOffice/BackOffice/Shared/EmptyLayout.razor b/src/BackOffice/BackOffice/Shared/EmptyLayout.razor new file mode 100644 index 0000000..6c9e2bb --- /dev/null +++ b/src/BackOffice/BackOffice/Shared/EmptyLayout.razor @@ -0,0 +1,36 @@ +@inherits LayoutComponentBase + + + + + + + + + + @Body + + + + + + +@code { + + + MudTheme CustomTheme = new MudTheme() + { + Typography = new Typography() + { + Default = new Default() + { + FontFamily = new[] { "IRANSans" } + + } + }, + LayoutProperties = new() + { + DrawerWidthRight = "250px" + }, + }; +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Shared/MainLayout.razor b/src/BackOffice/BackOffice/Shared/MainLayout.razor new file mode 100644 index 0000000..f9de7f7 --- /dev/null +++ b/src/BackOffice/BackOffice/Shared/MainLayout.razor @@ -0,0 +1,36 @@ +@using BackOffice.Shared +@using Microsoft.AspNetCore.Components.Authorization +@inherits LayoutComponentBase +@attribute [AllowAnonymous] + + + + + + + + + + مدیریت + + + + @(context.User.Claims?.FirstOrDefault(x => x.Type == "sub")?.Value) + + + + + + + + + + + + @Body + + + + + + diff --git a/src/BackOffice/BackOffice/Shared/MainLayout.razor.cs b/src/BackOffice/BackOffice/Shared/MainLayout.razor.cs new file mode 100644 index 0000000..78f6927 --- /dev/null +++ b/src/BackOffice/BackOffice/Shared/MainLayout.razor.cs @@ -0,0 +1,27 @@ +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Authorization; +using MudBlazor; + +namespace BackOffice.Shared; +public partial class MainLayout +{ + bool _drawerOpen = true; + private string Details { get; set; } + + void DrawerToggle() + { + _drawerOpen = !_drawerOpen; + } + + MudTheme CustomTheme = new MudTheme() + { + Typography = new Typography() + { + Default = new Default() + { + FontFamily = new[] { "IRANSans" } + + } + } + }; +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Shared/NavMenu.razor b/src/BackOffice/BackOffice/Shared/NavMenu.razor new file mode 100644 index 0000000..9796d16 --- /dev/null +++ b/src/BackOffice/BackOffice/Shared/NavMenu.razor @@ -0,0 +1,25 @@ +@using BackOffice.BFF.Package.Protobuf.Protos.Package +@using Microsoft.AspNetCore.Components.Authorization + + + داشبورد + + + مدیریت پکیج + + + + + + خروج از حساب + + + + +@code { + public async Task Signout() + { + await LocalStorageService.RemoveItemAsync("AuthToken"); + Navigation.NavigateTo("/Login"); + } +} \ No newline at end of file diff --git a/src/BackOffice/BackOffice/Shared/NavMenu.razor.css b/src/BackOffice/BackOffice/Shared/NavMenu.razor.css new file mode 100644 index 0000000..e69de29 diff --git a/src/BackOffice/BackOffice/_Imports.razor b/src/BackOffice/BackOffice/_Imports.razor new file mode 100644 index 0000000..acf87fb --- /dev/null +++ b/src/BackOffice/BackOffice/_Imports.razor @@ -0,0 +1,22 @@ +@using System.Net.Http +@using System.Net.Http.Json +@using Blazored.LocalStorage +@using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.WebAssembly.Http +@using Microsoft.JSInterop +@using BackOffice +@using BackOffice.Common.Utilities +@using MudBlazor +@using Mapster +@using DateTimeConverterCL + + +@attribute [Authorize(Roles = "Administrator, Admin, Author")] + +@inject MudBlazor.IDialogService DialogService +@inject MudBlazor.ISnackbar Snackbar +@inject IJSRuntime jsRuntime +@inject NavigationManager Navigation +@inject ILocalStorageService LocalStorageService diff --git a/src/BackOffice/BackOffice/wwwroot/appsettings.Development.json b/src/BackOffice/BackOffice/wwwroot/appsettings.Development.json new file mode 100644 index 0000000..770d3e9 --- /dev/null +++ b/src/BackOffice/BackOffice/wwwroot/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "DetailedErrors": true, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/src/BackOffice/BackOffice/wwwroot/appsettings.json b/src/BackOffice/BackOffice/wwwroot/appsettings.json new file mode 100644 index 0000000..e71c715 --- /dev/null +++ b/src/BackOffice/BackOffice/wwwroot/appsettings.json @@ -0,0 +1,9 @@ +{ + "GwUrl": "https://localhost:6468", + //"GwUrl": "https://localhost:6468", + "Authentication": { + //"Authority": "https://localhost:5001", + "Authority": "https://ids.afrino.co/", + "ClientId": "client_backoffice_spa" + } +} diff --git a/src/BackOffice/BackOffice/wwwroot/css/app.css b/src/BackOffice/BackOffice/wwwroot/css/app.css new file mode 100644 index 0000000..46042f4 --- /dev/null +++ b/src/BackOffice/BackOffice/wwwroot/css/app.css @@ -0,0 +1,82 @@ +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: 500; + src: url('../fonts/eot/IRANSansWeb(FaNum)_Medium.eot'); + src: url('../fonts/eot/IRANSansWeb(FaNum)_Medium.eot?#iefix') format('embedded-opentype'), /* IE6-8 */ + url('../fonts/woff2/IRANSansWeb(FaNum)_Medium.woff2') format('woff2'), /* FF39+,Chrome36+, Opera24+*/ + url('../fonts/woff/IRANSansWeb(FaNum)_Medium.woff') format('woff'), /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ + url('../fonts/ttf/IRANSansWeb(FaNum)_Medium.ttf') format('truetype'); +} + +.loading-progress { + position: relative; + display: block; + width: 8rem; + height: 8rem; + margin: 20vh auto 1rem auto; +} + + .loading-progress circle { + fill: none; + stroke: #e0e0e0; + stroke-width: 0.6rem; + transform-origin: 50% 50%; + transform: rotate(-90deg); + } + + .loading-progress circle:last-child { + stroke: #1b6ec2; + stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%; + transition: stroke-dasharray 0.05s ease-in-out; + } + +.loading-progress-text { + font-family: "Vazir"; + direction: rtl; + position: absolute; + text-align: center; + font-weight: bold; + inset: calc(20vh + 3.25rem) 0 auto 0.2rem; +} + + .loading-progress-text:after { + content: var(--blazor-load-percentage-text, "بارگذاری ..."); + } + +.mud-input.mud-input-outlined { + background-color: var(--mud-palette-surface); +} + +h1:focus { + outline: none; +} + +#blazor-error-ui { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; +} + + #blazor-error-ui .dismiss { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; + } + +.blazor-error-boundary { + background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121; + padding: 1rem 1rem 1rem 3.7rem; + color: white; +} + + .blazor-error-boundary::after { + content: "An error has occurred." + } \ No newline at end of file diff --git a/src/BackOffice/BackOffice/wwwroot/favicon.png b/src/BackOffice/BackOffice/wwwroot/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..3d8d15c2e72948f73c986be6392796f5fb04e614 GIT binary patch literal 1280 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 literal 0 HcmV?d00001 diff --git a/src/BackOffice/BackOffice/wwwroot/fonts/eot/IRANSansWeb(FaNum)_Black.eot b/src/BackOffice/BackOffice/wwwroot/fonts/eot/IRANSansWeb(FaNum)_Black.eot new file mode 100644 index 0000000000000000000000000000000000000000..a012bc6f1fbf42a3a7a85e706fcd02f23c828aa4 GIT binary patch literal 59864 zcmeFa2Xs_N(lFY6)66K0Mw+ORCMU&F7-^J8IcFq<5C{a4$N~f+M}x@G7y~97V;eBW zfK4!tINNJ`9Wah-aAKX;5o3_fdX`<-|G^Uirc(7Nined|_NS65e6S6|-y z3ZczkB7_lz$REm|kU6*P$?P& zZK_Zm8igjK>1YUQN25^@)T+=7)PamB4^4tvE1C#TN}+W-8Vh#_Y#Ko3q6UCWgD1zM zDS*LPP2yi$277O^sLrVm>{yX~N5ey{=ctoSA1$CvxKFAv_a1|F96c$OFq%jD+ zF%Ifei)*Uu-Y|^)4eIY96f&W>Zg5`jfiKGu`m6vUwyL@=E^+TeUp@~=XG8mz){aqA zYgbRHM#ygxLZYK%M@^p!1EGTF>*0RD*hzE7%$RxQQ-oB2|DMg`+DEl%4h$a(_j;hX z#{nRuOtKO1B|+UfuA^)Ai{<_>>KNWH-aKha>!{b4UD*P(gd@aMbc~ukm2zV{+;4>T z#>t~P+DBj5{5wLA0zM{l>XhkSXJ)+qFNB^B6-mV8z39E_ z(?@*QcmH;+`s$~F+x!`*OZvnN&_ku=S`9*hA6={FJ%QTi_#!HH5FBJQ;-~mX3gtfJ qs@Gdh$9rr1 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 Qf;b9MO)nwc4~Uok9|Ut&EdT%j literal 0 HcmV?d00001 diff --git a/src/BackOffice/BackOffice/wwwroot/fonts/eot/IRANSansWeb(FaNum)_Light.eot b/src/BackOffice/BackOffice/wwwroot/fonts/eot/IRANSansWeb(FaNum)_Light.eot new file mode 100644 index 0000000000000000000000000000000000000000..f89900843d86c7668fb9a1d49604dd5bfbac1fb0 GIT binary patch literal 64268 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 pXdCAcZU&`-xkMFh-!KX>8>GO`agE~dD{R0 literal 0 HcmV?d00001 diff --git a/src/BackOffice/BackOffice/wwwroot/fonts/eot/IRANSansWeb(FaNum)_Medium.eot b/src/BackOffice/BackOffice/wwwroot/fonts/eot/IRANSansWeb(FaNum)_Medium.eot new file mode 100644 index 0000000000000000000000000000000000000000..117c2c80d22c7f9a7cdaac23b62179504f281e14 GIT binary patch literal 52940 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