public async Task <BaseResponse> AddUsers([FromBody] AddUsersRequest request) { var userIds = (await _usersRepository.GetUsersAsync()).ToList().Select(u => u.Id); var newUserIds = request.Ids .Except(request.Ids.Intersect(userIds)) .Distinct() .ToList(); var newUsers = await _userSource.GetUsersInfo(newUserIds); foreach (var user in newUsers) { await _usersRepository.AddUserAsync(new User { Id = user.Id, AddedDateTime = DateTime.Now, FirstName = user.FirstName, LastName = user.LastName }); } _tracker.AddUsers(newUserIds); return(new BaseSuccessResponse()); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ITracker tracker, IUsersRepository usersRepository, IApplicationLifetime lifetime) { lifetime.ApplicationStopping.Register(LogManager.Shutdown); Task.Factory.StartNew(async() => { var userIds = (await usersRepository.GetUsersAsync()).Select(u => u.Id); tracker.AddUsers(userIds); await tracker.Start(); }); if (env.IsDevelopment()) { app.UseCors(builder => builder .AllowAnyMethod() .AllowAnyHeader() .WithOrigins("http://localhost:3000") .AllowCredentials() ); } else { app.UseHsts(); } app.UseMiddleware <ExceptionMiddleware>(); //app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); app.UseSwagger(); app.UseSwaggerUi(); app.UseMvc(routes => { routes.MapRoute("api", "api/{controller}/{action}/{id?}"); routes.MapRoute( name: "Default", template: "{*anything}", defaults: new { controller = "Spa", action = "Index" } ); }); }