Activities of "zhongfang"

I found this attribute in TenantManagementDbContext. I want to use this function, ignore TenantId in a single query, not whole DbContext, How to do?

using Microsoft.EntityFrameworkCore;
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.MultiTenancy;

namespace Volo.Abp.TenantManagement.EntityFrameworkCore;

[IgnoreMultiTenancy]
[ConnectionStringName(AbpTenantManagementDbProperties.ConnectionStringName)]
public class TenantManagementDbContext : AbpDbContext<TenantManagementDbContext>, ITenantManagementDbContext
{
  • ABP Framework version: v5.1.4
  • UI type: Blazor Server Side
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes

There is an artilce introduce ... https://community.abp.io/posts/how-to-add-custom-property-to-the-user-entity-6ggxiddr

But in ABP 5.1.4, I can not found Appuser.cs in the folder named Users of Domain project. What's the best practice to add propertity to User now?

  • ABP Framework version: v5.1.3
  • UI type: Blazor (Server Side)
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes

I want to add some fuction while Redirect to login.

Volo.Abp.AspNetCore.Components.Web.LeptonTheme/Components/RedirectToLogin.razor

@inject NavigationManager Navigation
@inject IJSRuntime JSRuntime

@code { 
    protected override void OnInitialized()
    {
        bool isWebAssembly = JSRuntime is IJSInProcessRuntime;
        if (isWebAssembly)
        {
            Navigation.NavigateTo($"authentication/login?returnUrl={Uri.EscapeDataString(Navigation.Uri)}");
        }
        else
        {
            Navigation.NavigateTo($"account/login?returnUrl={Uri.EscapeDataString(Navigation.Uri)}", true);
        }
    } 
}

My question is where is the source code of "account/login"?

  • ABP Framework version: v5.1.3
  • UI type: Blazor Server Side
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:
[00:33:01 INF] Request starting HTTP/1.0 GET http://api.***.tech/api/abp/api-definition - -
[00:33:01 INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController.Get (Volo.Abp.AspNetCore.Mvc)'
[00:33:01 INF] Route matched with {area = "abp", action = "Get", controller = "AbpApiDefinition", page = ""}. Executing controller action with signature Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel Get(Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto) on controller Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController (Volo.Abp.AspNetCore.Mvc).
[00:33:01 ERR] ---------- RemoteServiceErrorInfo ----------
{
  "code": null,
  "message": "对不起,在处理你的请求期间,产生了一个服务器内部错误!",
  "details": null,
  "data": {},
  "validationErrors": null
}

[00:33:01 ERR] Given type (System.String&, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) should be instance of System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e  (Parameter 'item')
System.ArgumentException: Given type (System.String&, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) should be instance of System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e  (Parameter 'item')
   at Volo.Abp.Collections.TypeList`1.CheckType(Type item)
   at Volo.Abp.Collections.TypeList`1.Add(Type item)
   at Volo.Abp.Http.Modeling.ApiTypeNameHelper.GetSimpleTypeName(Type type, ITypeList duplicateTypes)
   at Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel.Create(ParameterInfo parameterInfo)
   at System.Linq.Enumerable.SelectArrayIterator`2.ToList()
   at Volo.Abp.Http.Modeling.ActionApiDescriptionModel.Create(String uniqueName, MethodInfo method, String url, String httpMethod, IList`1 supportedVersions, Nullable`1 allowAnonymous, String implementFrom)
   at Volo.Abp.AspNetCore.Mvc.AspNetCoreApiDescriptionModelProvider.AddApiDescriptionToModel(ApiDescription apiDescription, ApplicationApiDescriptionModel applicationModel, ApplicationApiDescriptionModelRequestDto input)
   at Volo.Abp.AspNetCore.Mvc.AspNetCoreApiDescriptionModelProvider.CreateApiModel(ApplicationApiDescriptionModelRequestDto input)
   at lambda_method10858(Closure , Object , Object[] )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
[00:33:01 INF] Executing ObjectResult, writing value of type 'Volo.Abp.Http.RemoteServiceErrorResponse'.
[00:33:01 INF] Executed action Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController.Get (Volo.Abp.AspNetCore.Mvc) in 128.478ms
[00:33:01 INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController.Get (Volo.Abp.AspNetCore.Mvc)'
  • Steps to reproduce the issue:"
  • I deploy the HttpApi.Host on server.
  • I can open the page https://api.****.tech/swagger/index.html.
  • It run well for many days.
  • Now, after a daily deploy with some module changed, it will throw exception while Blazor project access http://api.***.tech/api/abp/api-definition
  • ABP Framework version: v5.1.3
  • UI type: Blazor Server Side
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace: Nothing
  • Steps to reproduce the issue:"
  • I created tired application with ABP Suite 5.1.3
  • In razor pages of Blazor project, @CurrentUser.Roles.JoinAsString(", ") get null output

What's the best practice of globle exception handler in Blazor Server Side application?

It seem that 'app.UseErrorPage()' is not working.

If you're creating a bug/problem report, please include followings:

  • ABP Framework version: v5.1.3
  • UI type: Blazor
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no
  • Exception message and stack trace:
  • Steps to reproduce the issue:"
  • ABP Framework version: v5.1.3
  • UI type: Blazor (Server Side
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no
  • Exception message and stack trace:
  • Steps to reproduce the issue:"
  • Add CmsKit module with ABP Suite 5.1.3
  • Run command
PS D:\abp-change\saas-admin\src\Yee.Change.Id5.EntityFrameworkCore> dotnet ef migrations add AddTables_CmsKitPro --context Id5DbContext
Build started...
Build succeeded.
Done. To undo this action, use 'ef migrations remove'
PS D:\abp-change\saas-admin\src\Yee.Change.Id5.EntityFrameworkCore> dotnet ef database update --context Id5DbContext
Build started...
Build succeeded.
Applying migration '20220209034057_Added_Pro_Module_52534'.
Applying migration '20220209035638_AddTables_CmsKitPro'.
Done.
  • Can not find CmsKit tables in database
public partial class AddTables_CmsKitPro : Migration
    {
        protected override void Up(MigrationBuilder migrationBuilder)
        {

        }

        protected override void Down(MigrationBuilder migrationBuilder)
        {

        }
    }
public abstract class Id5DbContextBase&lt;TDbContext&gt; : AbpDbContext&lt;TDbContext&gt;
        where TDbContext : DbContext
    {
        public Id5DbContextBase(DbContextOptions&lt;TDbContext&gt; options)
            : base(options)
        {

        }

        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);

            /* Include modules to your migration db context */

            builder.ConfigurePermissionManagement();
            builder.ConfigureSettingManagement();
            builder.ConfigureBackgroundJobs();
            builder.ConfigureAuditLogging();
            builder.ConfigureIdentityPro();
            builder.ConfigureIdentityServer();
            builder.ConfigureFeatureManagement();
            builder.ConfigureLanguageManagement();
            builder.ConfigureSaas();
            builder.ConfigureTextTemplateManagement();
            builder.ConfigureBlobStoring();

            /* Configure your own tables/entities inside here */

            //builder.Entity&lt;YourEntity&gt;(b =>
            //{
            //    b.ToTable(Id5Consts.DbTablePrefix + "YourEntities", Id5Consts.DbSchema);
            //    b.ConfigureByConvention(); //auto configure for the base class props
            //    //...
            //});

            //if (builder.IsHostDatabase())
            //{
            //    /* Tip: Configure mappings like that for the entities only available in the host side,
            //     * but should not be in the tenant databases. */
            //}
            builder.ConfigureCmsKitPro();
            builder.ConfigureCmsKit();
        }
    }
[DependsOn(
        typeof(Id5DomainModule),
        typeof(AbpIdentityProEntityFrameworkCoreModule),
        typeof(AbpIdentityServerEntityFrameworkCoreModule),
        typeof(AbpPermissionManagementEntityFrameworkCoreModule),
        typeof(AbpSettingManagementEntityFrameworkCoreModule),
        typeof(AbpEntityFrameworkCoreSqlServerModule),
        typeof(AbpBackgroundJobsEntityFrameworkCoreModule),
        typeof(AbpAuditLoggingEntityFrameworkCoreModule),
        typeof(AbpFeatureManagementEntityFrameworkCoreModule),
        typeof(LanguageManagementEntityFrameworkCoreModule),
        typeof(SaasEntityFrameworkCoreModule),
        typeof(TextTemplateManagementEntityFrameworkCoreModule),
        typeof(BlobStoringDatabaseEntityFrameworkCoreModule)
    )]
    [DependsOn(typeof(CmsKitProEntityFrameworkCoreModule))]
    public class Id5EntityFrameworkCoreModule : AbpModule
    {
        public override void PreConfigureServices(ServiceConfigurationContext context)
        {
            Id5EfCoreEntityExtensionMappings.Configure();
        }

        public override void ConfigureServices(ServiceConfigurationContext context)
        {
            context.Services.AddAbpDbContext&lt;Id5DbContext&gt;(options =>
            {
                /* Remove "includeAllEntities: true" to create
                 * default repositories only for aggregate roots */
                options.AddDefaultRepositories(includeAllEntities: true);
            });

            context.Services.AddAbpDbContext&lt;Id5TenantDbContext&gt;(options =>
            {
                /* Remove "includeAllEntities: true" to create
                 * default repositories only for aggregate roots */
                options.AddDefaultRepositories(includeAllEntities: true);
            });

            Configure&lt;AbpDbContextOptions&gt;(options =>
            {
                /* The main point to change your DBMS.
                 * See also Id5DbContextFactoryBase for EF Core tooling. */
                options.UseSqlServer();
            });
        }
    }
  • ABP Framework version: v5.1.3
  • UI type: Blazor (Server Side)
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no
  • Exception message and stack trace: no exception. and I can find the success in Serilog out put.
  • Steps to reproduce the issue:"
  • Insert into repository by code
Serilog.Log.Information("开始登记取消关注的情况。Open Id:" + openId);
            ISubscribeUserRepository subscribeUserRepository = this.LazyServiceProvider.LazyGetRequiredService&lt;ISubscribeUserRepository&gt;();

            if (subscribeUserRepository == null)
            {
                throw new Exception("没有找到 ISubscribeUserRepository。");
            }

            SubscribeUser subscribeUser = (await subscribeUserRepository.GetQueryableAsync()).FirstOrDefault(p => p.OpenId == openId && p.TenantId == tenantId);

            if (subscribeUser == null)
            {
                subscribeUser = new SubscribeUser()
                {
                    OpenId = openId,
                    Nick = "unknown",
                    UnSubscribedOn = DateTime.Now,
                    SubscribedTimes = 1,
                    UnSubscribedTimes = 1,
                    WeChatAppId = this.CurrentWeChatApp.WeChatApp.Result.Id,
                    TenantId = tenantId
                };

                subscribeUser = await subscribeUserRepository.InsertAsync(subscribeUser, autoSave: true);
                Serilog.Log.Information("成功新增了取消关注的情况。Open Id:" + openId + ",创建时间:" + subscribeUser.CreationTime + "TenantId:" + tenantId);
            }
            else
            {
                subscribeUser.UnSubscribedOn = DateTime.Now;
                subscribeUser.UnSubscribedTimes = subscribeUser.UnSubscribedTimes + 1;

                await subscribeUserRepository.UpdateAsync(subscribeUser, autoSave: true);
                Serilog.Log.Information("成功更新了取消关注的情况。Open Id:" + openId);
            }

            return true;
  • In Serilog output, above operation of InsertAsync is success.
[23:11:16 INF] 开始登记取消关注的情况。Open Id:oZKzr0_vqPUa5e_DpS5gusyU7MGI
[23:11:16 DBG] Added 0 entity changes to the current audit log
[23:11:16 INF] 成功新增了取消关注的情况。Open Id:oZKzr0_vqPUa5e_DpS5gusyU7MGI,创建时间:2022/2/8 下午11:11:16TenantId:55eea838-1079-84e1-a90a-39fe122f8fb5
[23:11:16 DBG] Added 0 entity changes to the current audit log
  • but I can not find the data in database which should has been insert async successfully.
  • ABP Framework version: v5.1.1
  • UI type: Blazor (Server Side)
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no, It is a module application.
  • Exception message and stack trace:
  • Steps to reproduce the issue:"
  • Create a new Entity
  • Input many simple fields
  • Click ' Save and Generate;
  • Then , I will get exception as below. ( At commond line which start the ABP Suite)
Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'startIndex')
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'startIndex')
   at System.Globalization.CompareInfo.IndexOf(String source, String value, Int32 startIndex, Int32 count, CompareOptions options)
   at System.String.IndexOf(String value, Int32 startIndex, Int32 count, StringComparison comparisonType)
   at System.String.IndexOf(String value, Int32 startIndex, StringComparison comparisonType)
   at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Commands.EntityGenerateCommand.F1AAu43krY(String  , String  , String  )
   at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Commands.EntityGenerateCommand.IBpAlr5Quy(String  , String  , Boolean  )
   at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Commands.EntityGenerateCommand.MYcAWPr5GZ(String  , String  , Boolean  , DatabaseProvider  )
   at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Commands.EntityGenerateCommand.yreAdjUhWH(String  , DatabaseProvider  )
   at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Commands.EntityGenerateCommand.cqSAJdEgpq()
   at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Commands.EntityGenerateCommand.ExecuteAsync(CrudPageCommandOptions options)
   at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.CommandManager.ExecuteAllAsync(CrudPageCommandOptions options)
   at Volo.Abp.Suite.Areas.AbpSuite.CrudPageGenerator.Commands.CrudPageGenerator.GenerateAsync(EntityModel entity, Solution solution)
   at Volo.Abp.Suite.Controllers.CrudPageGeneratorController.SaveAndGenerateEntityAsync(Guid solutionId, EntityModel entity)
   at lambda_method2055(Closure , Object )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.&lt;InvokeActionMethodAsync&gt;g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

My clients want to look Chinese UI, while they touch my web application.

How to do ?

  • ABP Framework version: v5.1.1
  • UI type: Blazor
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no
Showing 31 to 40 of 44 entries
Made with ❤️ on ABP v9.0.0-preview Updated on September 19, 2024, 10:13