From 52e7b84a86138d72fc1d37fb27bfa35d814dc6f5 Mon Sep 17 00:00:00 2001 From: MeysamMoghaddam <65253484+MeysamMoghaddam@users.noreply.github.com> Date: Tue, 7 Oct 2025 19:53:33 +0330 Subject: [PATCH] u --- .gitea/workflows/fo-stage.yml | 46 +++++++++++++++ src/FrontOffice.Main/Pages/Index.razor | 63 +++++++++++---------- src/FrontOffice.Main/Pages/Index.razor.cs | 68 +++++++++++++++-------- src/FrontOffice.Main/appsettings.json | 4 +- 4 files changed, 128 insertions(+), 53 deletions(-) create mode 100644 .gitea/workflows/fo-stage.yml diff --git a/.gitea/workflows/fo-stage.yml b/.gitea/workflows/fo-stage.yml new file mode 100644 index 0000000..660df76 --- /dev/null +++ b/.gitea/workflows/fo-stage.yml @@ -0,0 +1,46 @@ + +name: Push nuget and docker image Actions Workflow + +on: + push: + branches: + - stage +jobs: + Deploy: + runs-on: windows + steps: + - name: Checkout + uses: https://git.afrino.co/actions/checkout@v3 + - name: Setup dotnet + uses: https://git.afrino.co/actions/setup-dotnet@v3 + with: + dotnet-version: 7.0.x + + - name: Remove Package Source + run: dotnet nuget remove source FourSat + continue-on-error: true + - name: Add Package Source + run: dotnet nuget add source --name FourSat --username systemuser --password sZSA7PTiv3pUSQZ https://git.afrino.co/api/packages/FourSat/nuget/index.json --store-password-in-clear-text + + - name: Install dependencies + run: dotnet restore ".\src\FrontOffice.Main\FrontOffice.Main.csproj" + - name: Build + run: dotnet build ".\src\FrontOffice.Main\FrontOffice.Main.csproj" --configuration Release --no-restore + - name: Test + run: dotnet test ".\src\FrontOffice.Main\FrontOffice.Main.csproj" --no-restore --verbosity normal + - name: Recycle Apppool + run: | + & "C:\Windows\System32\inetsrv\appcmd.exe" recycle apppool /apppool.name:kbs1.ir + shell: powershell + - name: Stop Website + run: | + & "C:\Windows\System32\inetsrv\appcmd.exe" stop site /site.name:kbs1.ir + shell: powershell + - name: Publish + run: dotnet publish ".\src\FrontOffice.Main\FrontOffice.Main.csproj" -c Release -o publish + - name: Copy Publish To IIS Directory + run: Get-ChildItem -Path "publish\*" | Copy-Item -Destination "E:\kbs1.ir\kbs1.ir\" -Recurse -Force + - name: Start Website + run: | + & "C:\Windows\System32\inetsrv\appcmd.exe" start site /site.name:kbs1.ir + shell: powershell diff --git a/src/FrontOffice.Main/Pages/Index.razor b/src/FrontOffice.Main/Pages/Index.razor index 402e713..2edaa64 100644 --- a/src/FrontOffice.Main/Pages/Index.razor +++ b/src/FrontOffice.Main/Pages/Index.razor @@ -142,34 +142,41 @@ بر اساس اندازهٔ تیم خود انتخاب کنید. - - @foreach (var p in _packs) - { - - - - - @(p.Title) - @(p.Body) - - @foreach (var item in p.Items) - { - - - @item - - } - - - - - } - + @if (_isLoadingPackages) + { + + + در حال بارگذاری پکیجها... + + } + else if (_packs.Any()) + { + + @foreach (var p in _packs) + { + + + + + @(p.Title) + @((MarkupString)p.Body) + + + + } + + } + else + { + + هیچ پکیجی یافت نشد. + + } diff --git a/src/FrontOffice.Main/Pages/Index.razor.cs b/src/FrontOffice.Main/Pages/Index.razor.cs index 4682ce1..2902308 100644 --- a/src/FrontOffice.Main/Pages/Index.razor.cs +++ b/src/FrontOffice.Main/Pages/Index.razor.cs @@ -1,10 +1,53 @@ -using FrontOffice.Main.Utilities; +using FrontOffice.BFF.Package.Protobuf.Protos.Package; +using FrontOffice.Main.Utilities; +using Google.Protobuf.WellKnownTypes; +using Grpc.Core; +using Microsoft.AspNetCore.Components; using MudBlazor; namespace FrontOffice.Main.Pages; public partial class Index { + [Inject] private PackageContract.PackageContractClient PackageClient { get; set; } = default!; + private string? _email; + private bool _isLoadingPackages; + private List _packs = new(); + + protected override async Task OnInitializedAsync() + { + await LoadPackagesAsync(); + } + + private async Task LoadPackagesAsync() + { + _isLoadingPackages = true; + try + { + var response = await PackageClient.GetAllPackageByFilterAsync(request: new()); + if (response?.Models?.Any() == true) + { + _packs = response.Models.Select(p => new Pack( + p.Title, + p.Description, + Image: UrlUtility.DownloadUrl + p.ImagePath + )).ToList(); + } + else + _packs = new List(); + } + catch (Exception ex) + { + Snackbar.Add($"خطا در بارگذاری پکیجها: {ex.Message}", Severity.Error); + // Fallback to empty list + _packs = new List(); + } + finally + { + _isLoadingPackages = false; + await InvokeAsync(StateHasChanged); + } + } private void JoinWaitlist() { @@ -17,30 +60,9 @@ public partial class Index _email = string.Empty; } - private record Pack(string Title, string Body, IEnumerable Items, string Image); + private record Pack(string Title, string Body, string Image); private record Plan(string Name, string Price, bool Highlight, IEnumerable Features); private record QA(string Q, string A); - - private readonly List _packs = new() - { - new("پکیج استارتر", "برای تیمهای کوچک و شروع سریع.", new []{ - "تا ۲۰۰ عضو فعال", - "نمایش شجرهنامه پایه", - "گزارشهای ماهانه" - }, "https://images.unsplash.com/photo-1517245386807-bb43f82c33c4?q=80&w=1200&auto=format&fit=crop"), - - new("پکیج رشد", "برای تیمهای در حال توسعه.", new []{ - "تا ۵۰۰۰ عضو", - "موتور کارمزد پیشرفته", - "پشتیبانی اولویتدار" - }, "https://images.unsplash.com/photo-1551836022-4e32a88b5f16?q=80&w=1200&auto=format&fit=crop"), - - new("پکیج اسکیل", "برای سازمانهای بزرگ و حساس.", new []{ - "اعضای نامحدود", - "قوانین سفارشی کارمزد", - "SLA و آنبوردینگ اختصاصی" - }, "https://images.unsplash.com/photo-1522075469751-3a6694fb2f61?q=80&w=1200&auto=format&fit=crop"), - }; private readonly List _plans = new() { new("استارتر", "رایگان", false, new []{ "تا ۲۰۰ عضو", "شجرهنامه پایه", "پشتیبانی ایمیلی" }), diff --git a/src/FrontOffice.Main/appsettings.json b/src/FrontOffice.Main/appsettings.json index f6fae33..cbfed17 100644 --- a/src/FrontOffice.Main/appsettings.json +++ b/src/FrontOffice.Main/appsettings.json @@ -1,6 +1,6 @@ { - //"GwUrl": "https://afrinogw.afrino.co", - "GwUrl": "https://localhost:34781", + "GwUrl": "https://fogw.kbs1.ir", + //"GwUrl": "https://localhost:34781", "DownloadUrl": "https://dl.afrino.co", "Logging": { "LogLevel": {