Hi ABP Team, I have a problem when upgrading to v8.2 and using new template of Blazor Web App. My current solution using version 8.1.4 as following:
Now I'd like to use the new application template Blazor Web App as the Main Application replace for the above Main Application (Blazor Web Assembly) and I don't know how to integrate these modules with the new Main Application structure as now we have 2 Blazor projects (Blazor and Blazor.Client). Is there any document or guidline for this case? I have tried to do as earlier versions but it seems having error with authentication when my component in module is using signalR and error happened with code of getting access_token In razor page I have injected: @inject IAccessTokenProvider TokenProvider and here code of SignalR:
#region SignalR
public async Task GetConnectSignalR()
{
var tokenResult = await TokenProvider.RequestAccessToken();
var apiURL = Configuration.GetValue<string>("SignalR:Url");
Console.WriteLine("Getting SignalR-Common from appsettings.json: " + apiURL);
try
{
if (tokenResult.TryGetToken(out var token))
{
_hubConnection = new HubConnectionBuilder()
.WithUrl($"{apiURL}", options =>
{
options.AccessTokenProvider = async () => await Task.FromResult(token.Value);
}).Build();
_hubConnection.On<NotificationCreateDto>("ReceiveMessage",
(message) =>
{
_messages.Add(message);
Console.WriteLine("Received message from server: " + message);
_ = GetNotificationListAsync();
});
await _hubConnection.StartAsync();
Console.WriteLine("SignalR-Common connected");
}
}
catch (Exception ex)
{
Console.WriteLine("Error starting HubConnection: " + ex.Message);
}
}
public async Task SendMessage()
{
try
{
await _hubConnection.SendAsync("SendMessage", _message);
_message = new NotificationCreateDto();
}
catch (Exception ex)
{
Console.WriteLine("Error sending message: " + ex.Message);
}
}
public void Dispose()
{
_ = _hubConnection?.DisposeAsync();
}
#endregion
Error: blazor.web.js:1 crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100] Unhandled exception rendering component: Cannot provide a value for property 'TokenProvider' on type 'HQSOFT.Common.Blazor.Pages.Component.HQSOFTNotifications'. There is no registered service of type 'Microsoft.AspNetCore.Components.WebAssembly.Authentication.IAccessTokenProvider'. System.InvalidOperationException: Cannot provide a value for property 'TokenProvider' on type 'HQSOFT.Common.Blazor.Pages.Component.HQSOFTNotifications'. There is no registered service of type 'Microsoft.AspNetCore.Components.WebAssembly.Authentication.IAccessTokenProvider'. Thanks Dharma Han Nguyen
Hi,
I'm trying custom abp suite template to generate a custom method in Server.Repository.CustomCode.EfCoreRepository.Extended.txt.
In the template I have used this variable: %%dto-field-names-with-type%%, and it seem abp suite didn't understand and generated that text instead of replacing by the correct content:
Generated code:
Here my custom content in the template:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
using %%solution-namespace%%.EntityFrameworkCore;
namespace %%solution-namespace%%.%%entity-namespace%% { public class EfCore%%entity-name%%Repository : EfCore%%entity-name%%RepositoryBase, I%%entity-name%%Repository { public EfCore%%entity-name%%Repository(IDbContextProvider<%%only-project-name%%DbContext> dbContextProvider) : base(dbContextProvider) { } public virtual async Task<List<%%entity-name%%>> GetListNoPagedAsync( string? filterText = null, %%dto-field-names-with-type%%%%<if:HasFilterableProperties>%%,%%</if:HasFilterableProperties>%% string? sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, CancellationToken cancellationToken = default) { var query = ApplyFilter((await GetQueryableAsync()), filterText%%<if:HasFilterableProperties>%%, %%</if:HasFilterableProperties>%%%%dto-field-names%%); query = query.OrderBy(string.IsNullOrWhiteSpace(sorting) ? %%entity-name%%Consts.GetDefaultSorting(false) : sorting); return await query.ToListAsync(cancellationToken); } } }
.NET 8.0 has been released with new feature of Blazor to support many option for rendering. How we can apply this feature in ABP Framework for Blazor UI to optimize performance and page loading?
Thanks, Dharma
I have an issue of display top-menu when switching from side-menu to top-menu:
In additional, how can I setup the footer component will be auto hide when user roll down the page:
Thanks,
Dharma
Hi,
I deployed my Abp project (UI:Blazor Wasm) on Nginx Ubuntu. Blazor UI and Api run well, only a problem with authentication.
If I leave appsetting.json of Api as default:
"AuthServer": {
"Authority": "https://ebiz-devapi.abc.com",
"RequireHttpsMetadata": "true",
"SwaggerClientId": "eBiz_Swagger_Ubuntu"
}
When login it show this error:
If I changed RequireHttpsMetadata to false and Auth Server Url withou https, when Blazor login will show this error and cannot login:
Please help me to fix this issue. Thanks Dharma
Hi, I'm using ABP suite to generate ABP Application using Blazor Web Assemble UI. I'd like to add to the bottom of my Blazor page a Comment component so that use can input their comment, mention to other user, make reaction, rating... Can we use the similar component of CmsKit Pro in any blazor page within abp application? Thanks Dharma (Han Nguyen)
Hi Abp Team,
I'm using Blazor Web Assembly for UI, I would like to add some information from UI such as razor page name to know which page has called the api and some other information for tracking. How I can custom the Audit Logging module to add more information like that.
Thanks, Dharma (Han Nguyen)
Hi Abp Team,
Recently I have a problem with my own module that it cannot show the language, it run properly before and other modules are still ok for language loading.
Here my en.json file:
{
"culture": "en",
"texts": {
"SamplePageMessage": "A sample page for the SharedInformation module",
"Menu:SharedInformation": "Shared Information",
"Menu:GeographicalSubdivisions": "Geographical Subdivisions",
"Menu:Taxes": "Taxes",
"Menu:GeographicalSalesStructure": "Geographical Sales Structure",
"Menu:Others": "Others",
"Permission:Countries": "Countries",
"Permission:SharedInformation": "Shared Information",
"Permission:Create": "Create",
"Permission:Edit": "Edit",
"Permission:Delete": "Delete",
"Countries": "Countries",
"NewCountry": "New Country",
"Country": "Country",
"Menu:Countries": "Countries",
"SeeAdvancedFilters": "Advanced filters",
"DeleteConfirmationMessage": "Are you sure you want to delete this record?",
"SavingConfirmationMessage": "Your data has been modified. Do you wish to leave and lose the pending changes?",
"FGKDeletetionException": "The deleting record is already used in table: {0}!"
}
}