Base solution for your next web application
Starts in:
01 DAYS
01 HRS
01 MIN
01 SEC

Activities of "rickfrankel"

Prerequisites

Please answer the following questions before submitting an issue. YOU MAY DELETE THE PREREQUISITES SECTION.

  • What is your product version? 11.3.1
  • What is your product type (Angular or MVC)?
  • Angular
  • What is product framework type (.net framework or .net core)?
  • .Net Core

I noticed that the spinner annimation was missing in the newest version.

It would appear that you need to add "node_modules/ngx-spinner/animations/ball-clip-rotate.css",

To the angular.json file as per the instructions here https://github.com/Napster2210/ngx-spinner#usage

I added it to mine and the spinner works again.

Thanks Rick

Prerequisites

Please answer the following questions before submitting an issue. YOU MAY DELETE THE PREREQUISITES SECTION.

  • What is your product version?
  • 11.2.1
  • What is your product type (Angular or MVC)?
  • Angular
  • What is product framework type (.net framework or .net core)?
  • .Net Core

It would seem that upgrading from version 10.x to version 11.2 there is a breaking change in the way the customised dashboards are stored in the AbpSettings page.

Previously HostDashboard and TenantDashboard were stored in the same setting name, it now looks like they are split apart.

Is there any particular documentation on how we should handle this from an upgrade point of view?

Thanks Rick

We like the look of the illustration style images, however the actual images used aren't quite fitting to my product.

Wondering if you are able to say where you get them from and then we could potentially look at alternatives there (we're happy to pay if we find something more suited to our product).

Thanks Rick

Prerequisites

Please answer the following questions before submitting an issue. YOU MAY DELETE THE PREREQUISITES SECTION.

  • What is your product version?
  • 11.2.1
  • What is your product type (Angular or MVC)?
  • Angular
  • What is product framework type (.net framework or .net core)?
  • .Net Core

If issue related with ABP Framework

  • What is ABP Framework version?

If issue is about UI

  • Which theme are you using?
  • Default
  • What are the theme settings?
  • Default

In the standard template solution, I replaced the normal WebhookSubscription menu with this, in app-navigation.service.ts

                new AppMenuItem('Parent Menu', '', 'flaticon-interface-8', '', [], [
                    new AppMenuItem(
                        'WebhookSubscriptions',
                        'Pages.Administration.WebhookSubscription',
                        'flaticon2-world',
                        '/app/admin/webhook-subscriptions'
                    )
                ]),

<br> When you click on this menu item the Parent Menu collapses and you don't see which menu item is selected.  This doesn't happen if the nesting is only 1 level deep.

I'm wondering if it was broken with this fix https://support.aspnetzero.com/QA/Questions/10926/Side-bar-navigation---not-collapsing

It was working in v10

Prerequisites

Please answer the following questions before submitting an issue. YOU MAY DELETE THE PREREQUISITES SECTION.

  • What is your product version?
  • 11.1.2
  • What is your product type (Angular or MVC)?
  • Angular
  • What is product framework type (.net framework or .net core)?
  • .Net Core

If issue related with ABP Framework

  • What is ABP Framework version?
  • 7.3

Related potentially to this ticket but thought I'd create a new one. https://support.aspnetzero.com/QA/Questions/10816/MvcAuthorizationAbpAuthorizationFilter---UnitOfWork-error

When you have code that makes a call to an IRepository from within a Select on an IQueryable (or an IEnumerable, if you call ToList() before the Select it doesn't make a difference) you get the below error when using MySQL as your DB.

ERROR 2022-06-27 11:01:23,556 [81 ] Mvc.ExceptionHandling.AbpExceptionFilter - Value cannot be null. (Parameter 'unitOfWork') System.ArgumentNullException: Value cannot be null. (Parameter 'unitOfWork') at Abp.EntityFrameworkCore.Uow.UnitOfWorkExtensions.GetDbContext[TDbContext](IActiveUnitOfWork unitOfWork, Nullable1 multiTenancySide, String name) at Abp.EntityFrameworkCore.Repositories.EfCoreRepositoryBase3.GetDbQueryTable() at Abp.EntityFrameworkCore.Repositories.EfCoreRepositoryBase3.GetQueryable() at Abp.EntityFrameworkCore.Repositories.EfCoreRepositoryBase3.GetAllIncluding(Expression1[] propertySelectors) at Abp.EntityFrameworkCore.Repositories.EfCoreRepositoryBase3.GetAll() at Abp.Domain.Repositories.AbpRepositoryBase2.FirstOrDefault(TPrimaryKey id) at Abp.Domain.Repositories.AbpRepositoryBase2.Get(TPrimaryKey id) at Inbound.Operations.BookingAttachmentAppService.<>c__DisplayClass6_0.b__13(BinaryObject _) in C:\Source\Inbound\aspnet-core\src\Inbound.Application\Operations\BookingAttachmentAppService.cs:line 109

at System.Linq.Enumerable.SelectListIterator`2.MoveNext() at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer) at Abp.Auditing.JsonNetAuditSerializer.Serialize(Object obj) at Abp.AspNetCore.Mvc.Auditing.AbpAuditActionFilter.OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.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.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)


As per the other ticket when using the vanilla setup using MSSQL you get the below exception

ERROR 2022-06-23 17:11:17,525 [37 ] Mvc.ExceptionHandling.AbpExceptionFilter - There is already an open DataReader associated with this Connection which must be closed first. System.InvalidOperationException: There is already an open DataReader associated with this Connection which must be closed first. at Microsoft.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command) at Microsoft.Data.SqlClient.SqlCommand.ValidateCommand(Boolean isAsync, String method) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry, String method) at Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject) at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable1.Enumerator.InitializeReader(Enumerator enumerator) at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func3 operation, Func3 verifySucceeded) at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable1.Enumerator.MoveNext() at System.Linq.Enumerable.TryGetSingle[TSource](IEnumerable1 source, Boolean& found) at lambda_method2167(Closure , QueryContext ) at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable1 source, Expression1 predicate) at Abp.Domain.Repositories.AbpRepositoryBase2.FirstOrDefault(TPrimaryKey id) at lambda_method2163(Closure , QueryContext , DbDataReader , ResultContext , SingleQueryResultCoordinator ) at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable1.AsyncEnumerator.MoveNextAsync() at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable1 source, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable1 source, CancellationToken cancellationToken) at Inbound.Authorization.Users.UserAppService.GetUsers(GetUsersInput input) in C:\Source\Inbound-v11-2\aspnet-core\src\Inbound.Application\Authorization\Users\UserAppService.cs:line 124 at lambda_method2062(Closure , Object ) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)

at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.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.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

To reproduce all I did was take a newly downloaded vanilla setup and change the following default app service. You will see on the call to populate the property Fred in the select an exception is thrown. This did not happen in my previous version which was 10.2.

    [HttpPost]
    public async Task<PagedResultDto<UserListDto>> GetUsers(GetUsersInput input)
    {
        var query = GetUsersFilteredQuery(input);

        var userCount = await query.CountAsync();

        var users = await query
            .OrderBy(input.Sorting)
            .PageBy(input)
            .ToListAsync();

        var userListDtos = ObjectMapper.Map<List<UserListDto>>(users);
        await FillRoleNames(userListDtos);

        var roles = _userRoleRepository.GetAll();

        var test = await roles.Select(_ => new
        {
            Fred = _roleRepository.FirstOrDefault(_.RoleId)
        }).ToListAsync();


        return new PagedResultDto<UserListDto>(
            userCount,
            userListDtos
        );
    }

Prerequisites

Please answer the following questions before submitting an issue. YOU MAY DELETE THE PREREQUISITES SECTION.

  • What is your product version?
  • 11.2
  • What is your product type (Angular or MVC)?
  • Angular
  • What is product framework type (.net framework or .net core)?
  • .Net Core

If issue is about UI

  • Which theme are you using?
  • Default theme
  • What are the theme settings?
  • Default

I've noticed that during my upgrade from version 10 to 11.2 that many of the font setting classes have not been upgraded in the template.

For example. https://github.com/aspnetzero/aspnet-zero-core/blob/43544f3584dbfc839fa81c15d3391f0feb7ee861/angular/src/app/shared/common/customizable-dashboard/widgets/widget-top-stats/widget-top-stats.component.html

This file still uses font-weight-bolder and font-size-h6

However I don't believe these classes exist any more. They look to be either fw-bolder and fs-6 (or perhaps just h6).

This appears across a large number of files.

Has this been missed during the upgrade to Metronic 8? Or am I missing something.

It also impacts the ThemeCustomizers for the subheader menu component.

Thanks

Prerequisites

  • What is your product version?
  • 10.5
  • What is your product type (Angular or MVC)? Angular
  • What is product framework type (.net framework or .net core)? .Net Core

When trying to run npm run create-bundles on the public MVC website I more often than not get the following error.

[10:28:09] Using gulpfile C:\GitHub\Inbound\aspnet-core\src\XXX.Web.Public\gulpfile.js [10:28:09] Starting 'buildDev'... Bundles are being created, please wait... [10:28:24] 'buildDev' errored after 15 s [10:28:24] Error: EBUSY: resource busy or locked, open 'C:\GitHub\XXXX\aspnet-core\src\XXXX.Web.Public\wwwroot\dist\img\portlet-expand-icon-white.png'

The actual image icon in the error changes each time, however it is always on an image file that it happens.

I've tried disabling virus scanning and any other things I can think of that could be accessing the files at the same time

Yarn version is 1.22.15 NPM version is 6.14.12

Anyone seen this or got any suggestions?

Thanks

Prerequisites

Please answer the following questions before submitting an issue. YOU MAY DELETE THE PREREQUISITES SECTION.

  • What is your product version?
  • 10.3
  • What is your product type (Angular or MVC)?
  • Angular
  • What is product framework type (.net framework or .net core)?
  • .Net Core

The method GetEntityPropertyChanges in AuditLogAppService retrieved ALL audit log property changes before filtering to the ID it's after.

I've changed to var entityPropertyChanges = await _entityPropertyChangeRepository.GetAll() .Where(epc => epc.EntityChangeId == entityChangeId).ToListAsync();

In my project and it seems to still work perfetctly.

Thanks Rick

Prerequisites

Please answer the following questions before submitting an issue. YOU MAY DELETE THE PREREQUISITES SECTION.

  • What is your product version?
  • 10.3
  • What is your product type (Angular or MVC)?
  • Angular
  • What is product framework type (.net framework or .net core)?
  • .Net Core

If issue related with ABP Framework

  • What is ABP Framework version?
  • 6.3.1

I have a notification defined as follows (simplified)

        context.Manager.Add(
            new NotificationDefinition(
                AppNotificationNames.MyNotification,
                displayName: L("MyNotification"),
                permissionDependency: new SimplePermissionDependency(AppPermissions.Pages_Operations_My_Permission_View)
                )
        );
        
        

What I have found is that the following line in TenantManager:193 await _notificationSubscriptionManager.SubscribeToAllAvailableNotificationsAsync(new UserIdentifier(newTenantId, newAdminId));

Does not actually subscribe to all notifications. It would seem that it only subscribes to notifications that the host account user that is creating the tenant (with admin) also has access to. I have many other notifications defined in the AppNotificationProvider.cs that both the host account has access too and the new admin will also have access to based on permission dependencies and these are added without a problem (Eg: NewUserRegisteredNotificationDefinition).

However in this particular case the host account user does not have access too AppPermissions.Pages_Operations_My_Permission_View and as such it would appear as though the new tenant admin doesn't automatically get subscribed to this notification.

I've gone through the code for the SubscribeToAllAvailableNotificationsAsync and cannot manage to see why this is happening.

Need some help please. Thanks Rick

Prerequisites

Please answer the following questions before submitting an issue. YOU MAY DELETE THE PREREQUISITES SECTION.

  • What is your product version?
  • 10.3
  • What is your product type (Angular or MVC)?
  • Angular
  • What is product framework type (.net framework or .net core)?
  • .Net Core

AccountAppService.cs:166

This GetUserByIdAsync will throw an exception if the userID is not found. The code after it checks for user!=null and user ==null which would never happen and thus the user gets an UnFriendlyException message.

I change my code to

            var user = await UserManager.Users.FirstOrDefaultAsync(u => u.Id == input.UserId);

to get ensure we could get a null user.

PS: I'm not sure how my user actually got this error, but we had a case where someone was trying to activate with userid = 0 which threw this exception. We're still investigating that.

Showing 21 to 30 of 41 entries