Base solution for your next web application

Activities of "TimMackey"

If I add a function to the DashboardComponent class:

console_log(index: number) {
        console.log('DashboardComponent console_log ' + index.toString());
    }

... and add ngClass to the first line of 'dashboard.component.html' like this:

<div [@routerTransition] id="TenantDashboard" [ngClass]="console_log(1)">

... I am able to observe in a browser debug console window that the page is being refreshed thousands of times per minute when there is no activity. Why is this happening? Is there a setting to limit page updates to refresh only if something changes?

I need to limit page updates because I have a large SPA with dozens of dynamically loaded child components, each of which has another half-dozen dynamically loaded child components. My system is becoming very sluggish. Task Manager reports CPU usage of 21% for the SPA, and I have many more components yet to be added. What techniques can I adopt to make my SPA robust? I want to avoid breaking my SPA into dozens of small SPAs to resolve performance issues. Current AspNetZero revision: 5.3

Microsoft forced a Windows 10 Pro update on me overnight. Current: Version 1803, OS build 17134.48 *.Web.Host executed in localhost with no issues prior to the update. Downloaded a clean version of the template, compiled it, and attempted to run *.Web.Host again from Visual Studio 2017 (also latest available update). "HTTP ERROR 500" is displayed by the browser when launching Chrome with IIS Express (also latest available version) Any thoughts on where to begin looking for the fault?

I have discovered bugs in PrimeNg table controls. How do we get support without purchasing PrimeNG PRO Support?

I attempted to implement the "Manual toggle" example at.. [https://ngx-bootstrap-latest.surge.sh/#/collapse#manual-toggle])

Chrome and Edge browses report: ERROR Error: Uncaught (in promise): Error: Template parse errors: There is no directive with "exportAs" set to "bs-collapse" (" </button> <hr> <div [ERROR ->]#collapse="bs-collapse" [collapse]="isOpen" class="card card-block card-header"> "): ng:///MainModule/TtmDashboardComponent.html@167:21 Can't bind to 'collapse' since it isn't a known property of 'div'. ...

I'm trying to create a collection of panels that can be expanded or collapsed individually, or with a parent button to expand/collapse all child panels. I do not want an accordion, where opening one panel closes all others. I've been successful in getting multiple panels to expand/collapse independent of their neighbors, but not as a group.

There are lots of examples of how to do this, but they all require jQuery. I've discovered several jQuery methods don't exist or don't work in Boilerplate, like this one:

$(this).closest('.collapse-group').find('.collapse').collapse('hide');

...which results in an error in the browser console:

TypeError: Object doesn't support property or method 'collapse'

I have been unable to get this example to work on the dashboard page: [https://codepen.io/martinkrulltott/pen/mejmmj]) probably due to the jQuery code not being invoked.

I've spent a couple of whole days trying to enable what should be a simple task, without success. Can you offer any assistance?

When IPersonAppService interface is added, like this....

public class PersonAppService : PhoneBookDemoAppServiceBase, IPersonAppService

Tests Should_Get_All_People_Without_Any_Filter() and Should_Get_People_With_Filter() fail. When IPersonAppService is removed, the Tests pass. Also of note, the TenantId column in PbPersons and PbPhone is never set to 1. I also deleted and recreated the database to see if that would fix the problem. The Seed does create two new records on Host startup, but the TenantId is 0.

public partial class Implemented_IMustHaveTenant_For_Person : Migration
    {
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.AddColumn<int>(
                name: "TenantId",
                table: "PbPersons",
                nullable: false,
                defaultValue: 1);
        }
        ...
    }

MultiTenancyEnabled state makes no difference.

public class PhoneBookDemoConsts
    {
        public const bool MultiTenancyEnabled = true;
        ...
    }

In the section "Database Migrations", when creating file InitialPeopleCreator.cs the code is

namespace Acme.PhoneBookDemo.Migrations.Seed.Host
{
    public class InitialPeopleCreator
    {
        private readonly PhoneBookDemoDbContext _context;

        public InitialPeopleCreator(PhoneBookDemoDbContext context)
        {
            _context = context;
        }

        public void Create()
        {
            var douglas = _context.Persons.FirstOrDefault(p => p.EmailAddress == "[email protected]");
            if (douglas == null)
            {
                ...
            }
        }
    }
}

Later in the "Adding Database Migration" section the file 'InitialPeopleCreator.cs' is renamed 'InitialPeopleAndPhoneCreator.cs'. The code

var douglas = _context.Persons.FirstOrDefault(p => p.EmailAddress == "[email protected]");

introduces an error which is causing duplicate records for douglas.adams to be added to the database.

"[email protected]"

should be

"[email protected]")

Acme.PhoneBookDemo-Angular, "AddPhone and DeletePhone Methods" section... When implementing changes as specified, plus per explanation this:

[AbpAuthorize(AppPermissions.Pages_Tenant_PhoneBook)]
public class PersonAppService : PhoneBookDemoAppServiceBase, IPersonAppService
{
    private readonly IRepository&lt;Person&gt; _personRepository;
    private readonly IRepository&lt;Phone, long&gt; _phoneRepository;

    public PersonAppService(IRepository&lt;Person&gt; personRepository,
                            IRepository&lt;Phone, long&gt; phoneRepository)
    {
        _personRepository = personRepository;
        _phoneRepository = phoneRepository;
    }
    ...
}

...two Tests fail:

Test Name: PhoneBookDemo.Tests.People.PersonAppService_Tests.Should_Get_All_People_Without_Any_Filter Test FullName: PhoneBookDemo.Tests.People.PersonAppService_Tests.Should_Get_All_People_Without_Any_Filter Test Source: C:\PhoneBookDemo\PhoneBookDemo\aspnet-core\test\PhoneBookDemo.Tests\People\PersonAppService_Tests.cs : line 21 Test Outcome: Failed Test Duration: 0:00:03.093

Result StackTrace: at AutoMapper.Mapper.get_Instance() at AutoMapper.Mapper.Map[TDestination](Object source) at Abp.AutoMapper.AutoMapExtensions.MapTo[TDestination](Object source) at PhoneBookDemo.Persons.PersonAppService.GetPeople(GetPeopleInput input) at Castle.Proxies.PersonAppServiceProxy.GetPeople_callback(GetPeopleInput input) at Castle.Proxies.Invocations.IPersonAppService_GetPeople.InvokeMethodOnTarget() at Castle.DynamicProxy.AbstractInvocation.Proceed() at Abp.Authorization.AuthorizationInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Abp.Domain.Uow.UnitOfWorkInterceptor.PerformSyncUow(IInvocation invocation, UnitOfWorkOptions options) at Abp.Domain.Uow.UnitOfWorkInterceptor.PerformUow(IInvocation invocation, UnitOfWorkOptions options) at Abp.Domain.Uow.UnitOfWorkInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Abp.Auditing.AuditingInterceptor.PerformSyncAuditing(IInvocation invocation, AuditInfo auditInfo) at Abp.Auditing.AuditingInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Abp.Runtime.Validation.Interception.ValidationInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Castle.Proxies.PersonAppServiceProxy.GetPeople(GetPeopleInput input) at PhoneBookDemo.Tests.People.PersonAppService_Tests.Should_Get_All_People_Without_Any_Filter() Result Message: System.InvalidOperationException : Mapper not initialized. Call Initialize with appropriate configuration. If you are trying to use mapper instances through a container or otherwise, make sure you do not have any calls to the static Mapper.Map methods, and if you're using ProjectTo or UseAsDataSource extension methods, make sure you pass in the appropriate IConfigurationProvider instance.

...and...

Test Name: PhoneBookDemo.Tests.People.PersonAppService_Tests.Should_Get_People_With_Filter Test FullName: PhoneBookDemo.Tests.People.PersonAppService_Tests.Should_Get_People_With_Filter Test Source: C:\PhoneBookDemo\PhoneBookDemo\aspnet-core\test\PhoneBookDemo.Tests\People\PersonAppService_Tests.cs : line 31 Test Outcome: Failed Test Duration: 0:00:07.733

Result StackTrace: at AutoMapper.Mapper.get_Instance() at AutoMapper.Mapper.Map[TDestination](Object source) at Abp.AutoMapper.AutoMapExtensions.MapTo[TDestination](Object source) at PhoneBookDemo.Persons.PersonAppService.GetPeople(GetPeopleInput input) at Castle.Proxies.PersonAppServiceProxy.GetPeople_callback(GetPeopleInput input) at Castle.Proxies.Invocations.IPersonAppService_GetPeople.InvokeMethodOnTarget() at Castle.DynamicProxy.AbstractInvocation.Proceed() at Abp.Authorization.AuthorizationInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Abp.Domain.Uow.UnitOfWorkInterceptor.PerformSyncUow(IInvocation invocation, UnitOfWorkOptions options) at Abp.Domain.Uow.UnitOfWorkInterceptor.PerformUow(IInvocation invocation, UnitOfWorkOptions options) at Abp.Domain.Uow.UnitOfWorkInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Abp.Auditing.AuditingInterceptor.PerformSyncAuditing(IInvocation invocation, AuditInfo auditInfo) at Abp.Auditing.AuditingInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Abp.Runtime.Validation.Interception.ValidationInterceptor.Intercept(IInvocation invocation) at Castle.DynamicProxy.AbstractInvocation.Proceed() at Castle.Proxies.PersonAppServiceProxy.GetPeople(GetPeopleInput input) at PhoneBookDemo.Tests.People.PersonAppService_Tests.Should_Get_People_With_Filter() Result Message: System.InvalidOperationException : Mapper not initialized. Call Initialize with appropriate configuration. If you are trying to use mapper instances through a container or otherwise, make sure you do not have any calls to the static Mapper.Map methods, and if you're using ProjectTo or UseAsDataSource extension methods, make sure you pass in the appropriate IConfigurationProvider instance.

When I receive email notifications of topic updates for topic "ENTITY HISTORY TRACKING", here: #4931@bd177136-748c-4cbd-8be0-f408aba885b9 or topic "RADTOOLS DATABASE SAME TABLE MODIFY", here: #4929@427be0e5-545d-42e6-8f47-5989292fdcff or topic "FOREIGNKEY - MIGRATION", here: #4927@8476ee1e-d090-465d-bc7d-a4f619a44125

the link in email is incomplete, always the same: <a class="postlink-local" href="https://forum.aspnetboilerplate.com/viewforum.php?f=5">viewforum.php?f=5</a>

Acme.PhoneBookDemo-Angular: new component "People", Filtering People does not work as specified.

In 'phonebook.component.ts' export class PhoneBookComponent extends AppComponentBase implements OnInit {...} required changing 'filter: string = '';' to 'filterText = '';' because 'phonebook.component.html' specifies '<input [(ngModel)]="filterText" ...>'

If this is not the correct implementation, please advise. Thank you.

Showing 91 to 100 of 113 entries