Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        // 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" }
                    );
            });
        }