Base solution for your next web application

Activities of "TimMackey"

GitHub drops “master” and “slave” terms amidst BLM backlash

Microsoft's GitHub is removing coding terms like 'master' and 'slave'

In my ANZ project of 500+ files I found 21 affected files. Required about 1 hour to replace all instances of "master" with alternative names.

I have the following code:

MyAppService.cs

        [AbpAuthorize(AppPermissions.Pages_QuestionBanks)]
        public async Task<PagedResultDto<QuestionBankDto>> GetAll(GetAllQuestionBanksInput input)
        {
            List<QuestionBankDto> questionBankList;
            int totalCount;

            try
            {
                using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.MayHaveTenant,
                                                       AbpDataFilters.MustHaveTenant,
                                                       AbpDataFilters.SoftDelete))
                {
                    var filteredQuestionBanks = _questionBankRepository.GetAll()
                        .WhereIf(!string.IsNullOrWhiteSpace(input.Filter), e => false || e.QuestionBankName.Contains(input.Filter));

                    var course_query = _courseRepository.GetAll();
                    var courses = course_query.ToList();

                    var questionBanks = from o in filteredQuestionBanks

                                        join o1 in _userRepository.GetAll() on o.CreatorUserId equals o1.Id into j1
                                        from s1 in j1.DefaultIfEmpty()

                                        join o2 in _courseRepository.GetAll() on o.CourseId equals o2.Id into j2
                                        from s2 in j2.DefaultIfEmpty()

                                        select new QuestionBankDto()
                                        {
                                            CreateTicks = o.CreationTime.Ticks,
                                            CreateTime = o.CreationTime.ToLocalTime().ToString(),
                                            QuestionsCount = o.QuestionsCount,
                                            Flags = o.Roster,
                                            IsSet = (long)o.IsSet_,
                                            QuestionBankName = o.QuestionBankName,
                                            UserName = s1.UserName,
                                            CourseName = s2.CourseName,
                                            Id = o.Id
                                        };

                    var pagedAndFilteredQuestionBanks = questionBanks
                        .OrderBy(input.Sorting ?? "id asc")
                        .PageBy(input)
                        ;

                    questionBankList = await pagedAndFilteredQuestionBanks.ToListAsync();

                    totalCount = questionBankList.Count();
                }

                return new PagedResultDto<QuestionBankDto>(
                    totalCount,
                    questionBankList
                );
            }
            catch (Exception ex)
            {
                ExceptionUtility.LogException(AbpSession.UserId, ex);
                return null;
            }
        }

QuestionBankDto.cs

using Abp.Application.Services.Dto;

namespace ngTTM.TtmDataModel.Dtos
{
    public class QuestionBankDto : EntityDto
    {
        public string UserName { get; set; }

        public string CourseName { get; set; }

        public string QuestionBankName { get; set; }

        public int QuestionsCount { get; set; }

        public string Flags { get; set; }

        public long IsSet { get; set; }

        public string CreateTime { get; set; }

        public long CreateTicks { get; set; }
    }

Where public class QuestionBank : AuditedEntity

The statement questionBankList = await pagedAndFilteredQuestionBanks.ToListAsync(); throws an error when input.Sorting is "createTicks ASC" or "createTicks DESC". All other fields sort without raising an Exception. Exception Detail:

7/30/2020 11:27:42 PM (PST)  
1
Message: 
Exception Type: System.InvalidOperationException
Exception: The LINQ expression 'OrderByDescending<TransparentIdentifier<TransparentIdentifier<QuestionBank, User>, Course>, long>(
    source: LeftJoin<TransparentIdentifier<QuestionBank, User>, Course, int, TransparentIdentifier<TransparentIdentifier<QuestionBank, User>, Course>>(
        outer: LeftJoin<QuestionBank, User, Nullable<long>, TransparentIdentifier<QuestionBank, User>>(
            outer: DbSet<QuestionBank>, 
            inner: Where<User>(
                source: DbSet<User>, 
                predicate: (u) => (Unhandled parameter: __ef_filter__p_0) || !(((ISoftDelete)u).IsDeleted) && (Unhandled parameter: __ef_filter__p_1) || ((IMayHaveTenant)u).TenantId == (Unhandled parameter: __ef_filter__CurrentTenantId_2)), 
            outerKeySelector: (q) => q.CreatorUserId, 
            innerKeySelector: (u) => (Nullable<long>)u.Id, 
            resultSelector: (q, u) => new TransparentIdentifier<QuestionBank, User>(
                Outer = q, 
                Inner = u
            )), 
        inner: Where<Course>(
            source: DbSet<Course>, 
            predicate: (c) => (Unhandled parameter: __ef_filter__p_3) || ((IMayHaveTenant)c).TenantId == (Unhandled parameter: __ef_filter__CurrentTenantId_4)), 
        outerKeySelector: (ti) => ti.Outer.CourseId, 
        innerKeySelector: (c) => c.Id, 
        resultSelector: (ti, c) => new TransparentIdentifier<TransparentIdentifier<QuestionBank, User>, Course>(
            Outer = ti, 
            Inner = c
        )), 
    keySelector: (ti0) => ti0.Outer.Outer.CreationTime.Ticks)' could not be translated. Either rewrite the query in a form that can be translated, or switch to client evaluation explicitly by inserting a call to either AsEnumerable(), AsAsyncEnumerable(), ToList(), or ToListAsync(). See https://go.microsoft.com/fwlink/?linkid=2101038 for more information.
Source: Microsoft.EntityFrameworkCore
Stack Trace: 
   at Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVisitor.<VisitMethodCall>g__CheckTranslated|8_0(ShapedQueryExpression translated, <>c__DisplayClass8_0& )
   at Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
   at Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
   at Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
   at Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
   at Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExecutor[TResult](Expression query)
   at Microsoft.EntityFrameworkCore.Storage.Database.CompileQuery[TResult](Expression query, Boolean async)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.CompileQueryCore[TResult](IDatabase database, Expression query, IModel model, Boolean async)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.<>c__DisplayClass12_0`1.&lt;ExecuteAsync&gt;b__0()
   at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQueryCore[TFunc](Object cacheKey, Func`1 compiler)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.ExecuteAsync[TResult](Expression query, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.ExecuteAsync[TResult](Expression expression, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1.GetAsyncEnumerator(CancellationToken cancellationToken)
   at System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.GetAsyncEnumerator()
   at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
   at ngTTM.TtmDataModel.QuestionBanksAppService.GetAll(GetAllQuestionBanksInput input) in C:\Users\Tim\Documents\__ngTTMv800\aspnet-core\src\ngTTM.Application\TtmDataModel\QuestionBanksAppService.cs:line 708

"CreationTime" field is displayed correctly for all other sort fields.

How can I sort on the "CreationTime" field?

I want to enable a user to write records to multiple db tables that inherit AuditedEntity while impersonating another tenant/user. Assuming I have the target TenantId and UserId to be impersonated, how can I reference the IRepository repositories as the impersonated tenant/user such that the CreatorUserId recorded will be the impersonated UserId, and NOT the logged in UserId?

Question

ANZ version 8.0.0

Successful "npm start":

** Angular Live Development Server is listening on 0.0.0.0:4200, open your browser on http://localhost:4200/ **
i 「wdm」: Compiled successfully.

In desktop development environment, node server periodically (and frequently) crashes for no known reason:

C:\Users\Tim\Documents\__ngTTMv800\angular\node_modules\webpack-dev-server\lib\servers\SockJSServer.js:67
      f(connection, connection.headers);
                               ^

TypeError: Cannot read property 'headers' of null
    at Server.<anonymous> (C:\Users\Tim\Documents\__ngTTMv800\angular\node_modules\webpack-dev-server\lib\servers\SockJSServer.js:67:32)
    at Server.emit (events.js:223:5)
    at App.emit (C:\Users\Tim\Documents\__ngTTMv800\angular\node_modules\sockjs\lib\sockjs.js:196:29)
    at C:\Users\Tim\Documents\__ngTTMv800\angular\node_modules\sockjs\lib\transport.js:111:25
    at processTicksAndRejections (internal/process/task_queues.js:76:11)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: `gulp buildDev && ng serve --host 0.0.0.0 --port 4200`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Tim\AppData\Roaming\npm-cache\_logs\2020-07-06T18_48_43_977Z-debug.log

The above mentioned ...977Z-debug.log file:

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Users\\Tim\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'start'
1 verbose cli ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle [email protected]~prestart: [email protected]
6 info lifecycle [email protected]~start: [email protected]
7 verbose lifecycle [email protected]~start: unsafe-perm in lifecycle true
8 verbose lifecycle [email protected]~start: PATH: C:\Users\Tim\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;C:\Users\Tim\Documents\__ngTTMv800\angular\node_modules\.bin;C:\Perl64\site\bin;C:\Perl64\bin;C:\Program Files\Microsoft MPI\Bin\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\dotnet\;C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\;C:\Program Files\Microsoft SQL Server\130\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\Git\cmd;C:\Program Files\Microsoft\Web Platform Installer\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Microsoft VS Code\bin;C:\Program Files (x86)\Common Files\Acronis\VirtualFile\;C:\Program Files (x86)\Common Files\Acronis\VirtualFile64\;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\Program Files (x86)\Common Files\Acronis\FileProtector\;C:\Program Files (x86)\Common Files\Acronis\FileProtector64\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\WinMerge;C:\Program Files (x86)\Yarn\bin\;C:\Program Files\nodejs\;C:\Python\Scripts\;C:\Python\;C:\Users\Tim\AppData\Local\Microsoft\WindowsApps;.bin;C:\Users\Tim\AppData\Local\Programs\Fiddler;C:\SysInternals;C:\Program Files\Microsoft VS Code\bin;C:\Users\Tim\.dotnet\tools;C:\Users\Tim\AppData\Local\Microsoft\WindowsApps;C:\Users\Tim\AppData\Roaming\Python\Python36\Scripts;C:\Users\Tim\AppData\Local\Yarn\bin;C:\Users\Tim\AppData\Roaming\npm;
9 verbose lifecycle [email protected]~start: CWD: C:\Users\Tim\Documents\__ngTTMv800\angular
10 silly lifecycle [email protected]~start: Args: [ '/d /s /c', 'gulp buildDev && ng serve --host 0.0.0.0 --port 4200' ]
11 silly lifecycle [email protected]~start: Returned: code: 1  signal: null
12 info lifecycle [email protected]~start: Failed to exec start script
13 verbose stack Error: [email protected] start: `gulp buildDev && ng serve --host 0.0.0.0 --port 4200`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (C:\Users\Tim\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\index.js:332:16)
13 verbose stack     at EventEmitter.emit (events.js:223:5)
13 verbose stack     at ChildProcess.<anonymous> (C:\Users\Tim\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:223:5)
13 verbose stack     at maybeClose (internal/child_process.js:1021:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
14 verbose pkgid [email protected]
15 verbose cwd C:\Users\Tim\Documents\__ngTTMv800\angular
16 verbose Windows_NT 10.0.19041
17 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\Tim\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "start"
18 verbose node v12.15.0
19 verbose npm  v6.13.7
20 error code ELIFECYCLE
21 error errno 1
22 error [email protected] start: `gulp buildDev && ng serve --host 0.0.0.0 --port 4200`
22 error Exit status 1
23 error Failed at the [email protected] start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

How can I determine the actual cause of this fault? I'm concerned that when deployed the fault will happen and crash the website.

Power Tools version 2.4.0.1 was used to create the following entity and code.

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Abp.Domain.Entities.Auditing;
using Abp.Domain.Entities;

namespace ngTTM.TtmDataModel
{
	[Table("TtmExamStates")]
    public class ExamState : Entity 
    {
		[Required]
		public virtual string Guid { get; set; }
		public virtual int ItemsProcesssed { get; set; }
		public virtual int ItemsTotal { get; set; }
		public virtual double MathNotationRenderDuration { get; set; }
    }
}
         public async Task<PagedResultDto<GetExamStateForViewDto>> GetAll(GetAllExamStatesInput input)
         {
            
            var filteredExamStates = _examStateRepository.GetAll()
                        .WhereIf(!string.IsNullOrWhiteSpace(input.Filter), e => false  || e.Guid.Contains(input.Filter))
                        .WhereIf(!string.IsNullOrWhiteSpace(input.GuidFilter),  e => e.Guid == input.GuidFilter);

            var pagedAndFilteredExamStates = filteredExamStates
                .OrderBy(input.Sorting ?? "id asc")
                .PageBy(input);

            var examStates = from o in pagedAndFilteredExamStates
                         select new GetExamStateForViewDto() {
                            ExamState = new ExamStateDto
                            {
                                Guid = o.Guid,
                                ItemsProcesssed = o.ItemsProcesssed,
                                ItemsTotal = o.ItemsTotal,
                                MathNotationRenderDuration = o.MathNotationRenderDuration,
                                Id = o.Id
                            }
                        };

            var totalCount = await filteredExamStates.CountAsync();

            return new PagedResultDto<GetExamStateForViewDto>(
                totalCount,
                await examStates.ToListAsync()
            );
         }

The table data:

The UI appears as follows:

Clicking the columns for the integer values will sort ascending and descending as expected. Clicking the column for the string value (Guid) causes an Exception on the server. Logs.txt:

ERROR 2020-06-29 22:00:06,436 [44   ] Mvc.ExceptionHandling.AbpExceptionFilter - '.' or '(' or string literal expected
'.' or '(' or string literal expected (at index 5)
INFO  2020-06-29 22:00:06,437 [44   ] .Mvc.Infrastructure.ObjectResultExecutor - Executing ObjectResult, writing value of type 'Abp.Web.Models.AjaxResponse'.
INFO  2020-06-29 22:00:06,438 [44   ] c.Infrastructure.ControllerActionInvoker - Executed action ngTTM.TtmDataModel.ExamStatesAppService.GetAll (ngTTM.Application) in 102.9678ms
INFO  2020-06-29 22:00:06,438 [44   ] ft.AspNetCore.Routing.EndpointMiddleware - Executed endpoint 'ngTTM.TtmDataModel.ExamStatesAppService.GetAll (ngTTM.Application)'
INFO  2020-06-29 22:00:06,438 [44   ] Microsoft.AspNetCore.Hosting.Diagnostics - Request finished in 120.4762ms 500 application/json; charset=utf-8
DEBUG 2020-06-29 22:00:08,053 [37   ] HttpRequestEntityChangeSetReasonProvider - Unable to get URL from HttpRequest, fallback to null

The fault occurs on this statement:

            var pagedAndFilteredExamStates = filteredExamStates
                .OrderBy(input.Sorting ?? "id asc")
                .PageBy(input);
  1. Why is generated code not functioning without faults?
  2. What changes need to be made to fix this?

service-proxies.ts uses this trick:

    constructor(@Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {
        this.http = http;
        this.baseUrl = baseUrl ? baseUrl : "";
    }

I also copied this code (and supporting code):

    providers: [
        { provide: API_BASE_URL, useFactory: getRemoteServiceBaseUrl },

from root.module.ts to main.module.ts

When I use the same code in my app, baseUrl is always null. What might I have missed?

Error before login page displayed.

When launching the client from VS Code, the following error is frequently raised, and the login page does not display. Refreshing the browser page will then cause the login page to be displayed without any errors.

[WDS] Live Reloading enabled.
vendor.js:236455
Angular is running in the development mode. Call enableProdMode() to enable the production mode.
core.js:25637
ERROR
core.js:4002
Error: Uncaught (in promise): ChunkLoadError: Loading chunk account-account-module failed.
core.js:4002
message:"Uncaught (in promise): ChunkLoadError: Loading chunk account-account-module failed.\n(error: http://localhost:4200/account-account-module.js)\nChunkLoadError: Loading chunk account-account-module failed.\n(error: http://localhost:4200/account-account-module.js)\n    at Function.requireEnsure [as e] (http://localhost:4200/runtime.js:127:26)\n    at loadChildren (http://localhost:4200/main.js:30809:150)\n    at RouterConfigLoader.push../node_modules/@angular/router/fesm5/router.js.RouterConfigLoader.loadModuleFactory (http://localhost:4200/vendor.js:88907:39)\n    at RouterConfigLoader.push../node_modules/@angular/router/fesm5/router.js.RouterConfigLoader.load (http://localhost:4200/vendor.js:88892:35)\n    at MergeMapSubscriber.project (http://localhost:4200/vendor.js:87894:47)\n    at MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber._tryNext (http://localhost:4200/vendor.js:223173:27)\n    at MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/mergeMa...
promise:ZoneAwarePromise {__zone_symbol__state: 0, __zone_symbol__value: ChunkLoadError: Loading chunk account-account-modu…}
__zone_symbol__state:0
__zone_symbol__value:ChunkLoadError: Loading chunk account-account-module failed.
message:"Loading chunk account-account-module failed.\n(error: http://localhost:4200/account-account-module.js)"
name:"ChunkLoadError"
request:"http://localhost:4200/account-account-module.js"
stack:"ChunkLoadError: Loading chunk account-account-module failed.\n(error: http://localhost:4200/account-account-module.js)\n    at Function.requireEnsure [as e] (http://localhost:4200/runtime.js:127:26)\n    at loadChildren (http://localhost:4200/main.js:30809:150)\n    at RouterConfigLoader.push../node_modules/@angular/router/fesm5/router.js.RouterConfigLoader.loadModuleFactory (http://localhost:4200/vendor.js:88907:39)\n    at RouterConfigLoader.push../node_modules/@angular/router/fesm5/router.js.RouterConfigLoader.load (http://localhost:4200/vendor.js:88892:35)\n    at MergeMapSubscriber.project (http://localhost:4200/vendor.js:87894:47)\n    at MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber._tryNext (http://localhost:4200/vendor.js:223173:27)\n    at MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber._next (http://localhost:4200/vendor.js:223163:18)\n    at MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/S...
type:"error"
__proto__:Object {constructor: , name: "Error", message: "", …}
Symbol(Symbol.toStringTag):undefined
__proto__:Object {then: , catch: , finally: , …}
rejection:ChunkLoadError: Loading chunk account-account-module failed.
stack:"Error: Uncaught (in promise): ChunkLoadError: Loading chunk account-account-module failed.\n(error: http://localhost:4200/account-account-module.js)\nChunkLoadError: Loading chunk account-account-module failed.\n(error: http://localhost:4200/account-account-module.js)\n    at Function.requireEnsure [as e] (http://localhost:4200/runtime.js:127:26)\n    at loadChildren (http://localhost:4200/main.js:30809:150)\n    at RouterConfigLoader.push../node_modules/@angular/router/fesm5/router.js.RouterConfigLoader.loadModuleFactory (http://localhost:4200/vendor.js:88907:39)\n    at RouterConfigLoader.push../node_modules/@angular/router/fesm5/router.js.RouterConfigLoader.load (http://localhost:4200/vendor.js:88892:35)\n    at MergeMapSubscriber.project (http://localhost:4200/vendor.js:87894:47)\n    at MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/mergeMap.js.MergeMapSubscriber._tryNext (http://localhost:4200/vendor.js:223173:27)\n    at MergeMapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/...
task:ZoneTask {_zone: Zone, runCount: 0, _zoneDelegates: null, …}
zone:Zone {_parent: Zone, _name: "angular", _properties: Object, …}
__proto__:Object {constructor: , name: "Error", message: "", …}
constructor:function Error() { … }
message:""
name:"Error"
toString:function toString() { … }
__proto__:Object {constructor: , __defineGetter__: , __defineSetter__: , …}

I would like to add a string column to the AbpUserLoginAttempts table to include my own custom data (client screen info). There doesn't seem to be an easy way to do this, unlike with the User table, which has a section "Can add application specific user properties here" (which I have used successfully.)

Aside from hand-modifying "myProjectDbContextModelSnapshot.cs" (which I am loath to do), I haven't found another solution. Also not found:

  • how BrowserInfo, ClientIpAddress, etc. is added to the table on the server.
  • the code on the client where BrowserInfo, ClientIpAddress, etc are sent to the server.

If it isn't possible or practical to modify AbpUserLoginAttempts I could create another table for my custom data, but would still need a way to reference the correct AbpUserLoginAttempts Id.

MyProject: Angular/Core

I want to navigate to a page (normally accessed via the sidebar navigation menu) from an anchor tag. This will provide my users 2 ways of navigating to their desired page. How can I accomplish this without reloading the page? See 8205 for code samples.

I tried injecting the LoginService into 'topbar.component.ts' in the constructor thusly: private _loginService: LoginService,, (and imported it) import { LoginService } from '@account/login/login.service';

However, after logging in, I get a continuous stream of errors on the console:

null: ERROR
null: NullInjectorError: StaticInjectorError(RootModule)[TopBarComponent -> LoginService]:
no debug adapter:
null: ERROR CONTEXT
null: DebugContext_ {view: Object, nodeIndex: 31, nodeDef: Object, elDef: Object, elView: Object}
...

I am returning a custom boolean in the 'authenticationResult' that I want to use in topbar.

Showing 31 to 40 of 113 entries