public IActionResult ImportUser(
            [FromBody] UserImportDto import,
            [FromHeader(Name = "Authorization")] string token,
            int userId)
        {
            var tokenUserId = User.Claims.GetUserId();

            if (!appSettings.AdminUserIds.Contains(tokenUserId))
            {
                return(Forbid());
            }

            queue.QueueBackgroundWorkItem(async cancelToken =>
            {
                // https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-2.2#call-services-from-main
                using (var serviceScope = serviceScopeFactory.CreateScope())
                {
                    var services = serviceScope.ServiceProvider;
                    var m        = services.GetRequiredService <IMediator>();

                    Log.Information($"Starting ImportUser for user {userId}");
                    await m.Send(new ImportUser.Command(import, userId)).ConfigureAwait(false);
                }

                Log.Information("ImportUser has completed");
            });

            return(Accepted());
        }
Ejemplo n.º 2
0
 public Command(UserImportDto import, int userId)
 {
     Import = import;
     UserId = userId;
 }