using FastEndpoints; using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; namespace Faben.Api.Endpoints; public class RegisterRequest { public string NameSurname { get; set; } public string CompanyName { get; set; } public string PhoneNumber { get; set; } public string Password { get; set; } public string Email { get; set; } } public class RegisterEndpoint (FabenDbContext context, UserManager userManager) : Endpoint { public override void Configure() { Post("accounts/register"); Version(1); AllowAnonymous(); } public override async Task HandleAsync(RegisterRequest req, CancellationToken c) { var isExist = await context.Users.Where(p => p.Email == req.Email).AnyAsync(c); if (isExist) AddError("Eposta kullanılmakta"); ThrowIfAnyErrors(); var res = await userManager.CreateAsync(new ApplicationUser { Email = req.Email, UserName = req.Email, NameSurname = req.NameSurname, Company = req.CompanyName, PhoneNumber = req.PhoneNumber, }, req.Password); if (!res.Succeeded) { foreach (var err in res.Errors) { AddError(err.Description); } } ThrowIfAnyErrors(); await SendNoContentAsync(c); } }