6.8.0, Angular, .NET Framework
I think it would be good to have a simple way to define sorting on the public pricing table page.
Right now sorting is done in alphabetic order based on feature names. But this might not always make sense (which is why I have to use a prefix ... and that's not so beautiful ...)
I suggest something like an additional property for FeatureMetadata
, e.g.: public int SortIndex { get; set; }
Prioritize this property for sorting if set and sort the rest in alphabetic order if not set (or value is 0). And if some values are the same, also use alphabetic order.
What do you think about it?
6.8.0, Angular, .NET Framework
I have some permissions that have a feature-dependency (meaning the permissions are only available when the feature they depend on is enabled). When I remove a feature from an edition I would expect all permissions for all users and roles of all tenants that are assigned to the specific edition to be cleaned up. But this is not the case. I think, this is not the correct behaviour, right!?
Although, it might come in handy when romving a feature by accident - because then you just need to add the feature again and everything is fine.
6.8.0, Angular, .NET Framework
It seems FeatureCheckerService
does not respect IgnoreFeatureCheckForHostUsers = true
.
I have an AppMenuItem that requires a certain feature as well as a certain permission.
When editing permissions for a host user I can see all permissions that would require certain features to be shown. So all is fine here.
But when it comes to feature-checking in app-navigation.service.ts
the result is for host is false
. I'd expect it to be true, since feature-check for host should be ignored, right!? Isn't it intended like that?
6.7.0, Angular, .NET Framework
I want to display certain AppMenuItems only in dependency of certain features.
I couldn't find anything about it in documentation, but I found a 2 years old support question here: [Using featureDependency in Navigation Provider? #1880](https://support.aspnetzero.com/QA/Questions/1880)
The problem is, I don't know where to import SimpleFeatureDependency
from.
I'm not sure whether this feature request belongs to ASP.NET Boilerplate repository or ASPNETZERO repository, that's why i post it here first.
Feature Request: I would like to have the possibilty to create private editions in ASPNETZERO.
Reason: Right now I can create multiple editions and everybody can see them and also subscribe to one of them. If I need to change some features for a certain tenant I can do so by simply editing the features of the particular tenant in tenant-management. So far, so good. If a tenant requests some sort of feature upgrade and is also willing to pay a little more for it, I would have to create a new edition in order to adapt pricing. But this new edition will be available to everybody, which I propably don't want (maybe just because there would be too many editions available with only tiny differences). Having private editions - which are not visible to the public - could be a solution to this use case, I think.
ASPNETZERO 6.6.1, Angular, .NET Framework
I have a couple of features (boolean type) with child-features (value-type).
On client-side, when selecting an edition before registering a new tenant, I can see child-features being displayed although their parent-feature isn't activated (set to true) in that specific edition. Is this behaviour intended or is this a bug?
I would expect child-features to not be displayed when their parent-feature is not activated.
EDIT
A quick look on the source code (select-edition.component.html
) shows that inactive feature also should be displayed, including an icon that indicates that a feature is inactive. But this does not happen in my case ... I can only see child-features, but no parent-features (no matter if active or not).
EDIT
TenantRegistrationAppService.GetEditionsForSelect()
contains an interesting query:
var flatFeatures = ObjectMapper
.Map<List<FlatFeatureSelectDto>>(features)
.OrderBy(f => f.DisplayName)
.ToList();
It looks like this should create a list of all features without hierarchy. It's result is being displayed in select-edition.component.html
. But it only contains value-feature-types. Maybe there's something wrong with the mapping? I don't think it is intended this way.
Angular, .NET Framework, 6.6.1
I just finished upgrading from 6.5.0 to 6.6.1.
Here is the content of Log.txt:
INFO 2019-02-11 12:41:11,531 [33 ] soft.AspNetCore.Hosting.Internal.WebHost - Request starting HTTP/1.1 OPTIONS http://localhost:22742/AbpUserConfiguration/GetAll?d=1549885271457
INFO 2019-02-11 12:41:11,532 [33 ] pNetCore.Cors.Infrastructure.CorsService - CORS policy execution successful.
INFO 2019-02-11 12:41:11,532 [33 ] soft.AspNetCore.Hosting.Internal.WebHost - Request finished in 0.3543ms 204
INFO 2019-02-11 12:41:11,586 [33 ] soft.AspNetCore.Hosting.Internal.WebHost - Request starting HTTP/1.1 GET http://localhost:22742/AbpUserConfiguration/GetAll?d=1549885271457 application/json
INFO 2019-02-11 12:41:11,587 [33 ] pNetCore.Cors.Infrastructure.CorsService - CORS policy execution successful.
INFO 2019-02-11 12:41:11,587 [33 ] ft.AspNetCore.Routing.EndpointMiddleware - Executing endpoint 'Abp.AspNetCore.Mvc.Controllers.AbpUserConfigurationController.GetAll (Abp.AspNetCore)'
INFO 2019-02-11 12:41:11,593 [33 ] ore.Mvc.Internal.ControllerActionInvoker - Route matched with {action = "GetAll", controller = "AbpUserConfiguration", area = ""}. Executing action Abp.AspNetCore.Mvc.Controllers.AbpUserConfigurationController.GetAll (Abp.AspNetCore)
INFO 2019-02-11 12:41:11,593 [33 ] pNetCore.Cors.Infrastructure.CorsService - CORS policy execution successful.
INFO 2019-02-11 12:41:11,594 [33 ] ore.Mvc.Internal.ControllerActionInvoker - Executing action method Abp.AspNetCore.Mvc.Controllers.AbpUserConfigurationController.GetAll (Abp.AspNetCore) - Validation state: Valid
INFO 2019-02-11 12:41:11,625 [33 ] ore.Mvc.Internal.ControllerActionInvoker - Executed action method Abp.AspNetCore.Mvc.Controllers.AbpUserConfigurationController.GetAll (Abp.AspNetCore), returned result Microsoft.AspNetCore.Mvc.JsonResult in 30.2267ms.
ERROR 2019-02-11 12:41:14,137 [27 ] Mvc.ExceptionHandling.AbpExceptionFilter - An error occurred while updating the entries. See the inner exception for details.
Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Invalid column name 'ReturnValue'.
bei System.Data.SqlClient.SqlCommand.<>c.<ExecuteDbDataReaderAsync>b__180_0(Task`1 result)
bei System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
bei System.Threading.Tasks.Task.Execute()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.<ExecuteAsync>d__17.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.<ExecuteAsync>d__32.MoveNext()
--- Ende der internen Ausnahmestapelüberwachung ---
bei Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.<ExecuteAsync>d__32.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.<ExecuteAsync>d__10.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.<ExecuteAsync>d__7`2.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.<SaveChangesAsync>d__81.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.<SaveChangesAsync>d__79.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Microsoft.EntityFrameworkCore.DbContext.<SaveChangesAsync>d__53.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Abp.EntityFrameworkCore.AbpDbContext.<SaveChangesAsync>d__49.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Abp.Zero.EntityFrameworkCore.AbpZeroCommonDbContext`3.<SaveChangesAsync>d__102.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Abp.EntityFrameworkCore.Uow.EfCoreUnitOfWork.<SaveChangesInDbContextAsync>d__20.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Abp.EntityFrameworkCore.Uow.EfCoreUnitOfWork.<SaveChangesAsync>d__12.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Abp.EntityFrameworkCore.Uow.EfCoreUnitOfWork.<CompleteUowAsync>d__14.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Abp.Domain.Uow.UnitOfWorkBase.<CompleteAsync>d__61.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Abp.Auditing.AuditingHelper.<SaveAsync>d__21.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Abp.AspNetCore.Mvc.Auditing.AbpAuditActionFilter.<OnActionExecutionAsync>d__3.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeNextActionFilterAsync>d__10.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)
bei Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
bei Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeInnerFilterAsync>d__13.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeNextExceptionFilterAsync>d__24.MoveNext()
INFO 2019-02-11 12:41:14,138 [27 ] .Mvc.Infrastructure.ObjectResultExecutor - Executing ObjectResult, writing value of type 'Abp.Web.Models.AjaxResponse'.
INFO 2019-02-11 12:41:14,139 [27 ] ore.Mvc.Internal.ControllerActionInvoker - Executed action Abp.AspNetCore.Mvc.Controllers.AbpUserConfigurationController.GetAll (Abp.AspNetCore) in 2546.4026ms
INFO 2019-02-11 12:41:14,139 [27 ] ft.AspNetCore.Routing.EndpointMiddleware - Executed endpoint 'Abp.AspNetCore.Mvc.Controllers.AbpUserConfigurationController.GetAll (Abp.AspNetCore)'
INFO 2019-02-11 12:41:14,140 [27 ] soft.AspNetCore.Hosting.Internal.WebHost - Request finished in 2553.2142ms 500 application/json; charset=utf-8
Any ideas what may cause this issue?
6.5.0, Angular, .Net Framework deployed to azure
I have a rather strange issue here ...
I have a service for file-management, a page 'file-management' that communicates with the service, as well as a modal that can be used by other components. When using the file-management component, the first request is fired to get meta-data to display a list of files and folders.
When I'm using a tenant-account everything is working fine.
But when I'm using a host-account I get a an error related to CORS (browser console):
Access to fetch at 'https://projectname.azurewebsites.net/api/services/app/FileManagerBackend/GetAllAsync?Name=' from origin 'https://projectname-be.azurewebsites.net' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Next thing that happens is the application crashing (server-side) resulting in following error message (browser console):
GET https://projectname.azurewebsites.net/api/services/app/FileManagerBackend/GetAllAsync?Name= 504 (Gateway Timeout)
and
ERROR Error: An unexpected server error occurred.
After a while the application is back running fine.
Also, this does not happen in development environment (localhost).
Version: 6.5.0, Asp.Net Core & Angular
Hi! Currently, I'm facing problems with the activation-code sent via e-mail being invalid (for both tenant- and user-registration). This is the case for my own project hosted in Azure as well as for the demo provided by ASPNETZERO (user-registration).
Is there something wrong with e-mail-activation?