Beispiel #1
0
 public override async Task ListUsers(ListUsersRequest request, IServerStreamWriter <ListUsersResponse> responseStream, ServerCallContext context)
 {
     using (var db = new AuthDbContext())
     {
         foreach (var user in db.Users)
         {
             await responseStream.WriteAsync(new ListUsersResponse { Id = user.Id, FirstName = user.FirstName, LastName = user.LastName, Email = user.Email });
         }
     }
 }
Beispiel #2
0
        public override async Task <AddUserResponse> AddUser(AddUserRequest request, ServerCallContext context)
        {
            using (var db = new AuthDbContext())
            {
                var user = new User {
                    FirstName = request.FirstName, LastName = request.LastName, Email = request.Email
                };
                db.Users.Add(user);
                await db.SaveChangesAsync();

                return(new AddUserResponse {
                    Id = user.Id
                });
            }

            throw new RpcException(new Status(StatusCode.Internal, ""));
        }
Beispiel #3
0
        public override async Task <GetUserResponse> GetUser(GetUserRequest request, ServerCallContext context)
        {
            using (var db = new AuthDbContext())
            {
                var user = await db.Users.SingleOrDefaultAsync(u => u.Id == request.Id);

                if (user == null)
                {
                    throw new RpcException(new Status(StatusCode.NotFound, $"User not found: {request.Id}"));
                }

                return(new GetUserResponse {
                    Id = user.Id, FirstName = user.FirstName, LastName = user.LastName, Email = user.Email
                });
            }

            throw new RpcException(new Status(StatusCode.Internal, ""));
        }
Beispiel #4
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(
            IApplicationBuilder app,
            IHostingEnvironment env,
            AuthDbContext dbContext,
            RoleManager <IdentityRole> roleManager
            )
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            // ===== Use Authentication ======
            app.UseAuthentication();
            RolesData.SeedRoles(roleManager).Wait();
            app.UseMvc();

            // ===== Create tables ======
            dbContext.Database.EnsureCreated();
        }
Beispiel #5
0
        static async Task Main(string[] args)
        {
            using (var db = new AuthDbContext())
            {
                db.Database.Migrate();
            }

            var hostBuilder = new HostBuilder()
                              .ConfigureServices((hostContext, services) =>
            {
                Server server = new Server
                {
                    Services = { Library.AuthService.BindService(new AuthServiceImpl()) },
                    Ports    = { new ServerPort("localhost", port, ServerCredentials.Insecure) }
                };
                services.AddSingleton <Server>(server);
                services.AddHostedService <GrpcServerHostedService>();
            }).UseConsoleLifetime().Build();

            await hostBuilder.RunAsync();
        }