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 }); } } }
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, "")); }
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, "")); }
// 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(); }
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(); }