From 60a3b3ab22163d2a540817a363ae6d3588888e38 Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Tue, 5 Aug 2025 11:18:31 +0530 Subject: [PATCH] Added new API check if user with email exists or not --- .../Controllers/UserController.cs | 49 ++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/Marco.Pms.Services/Controllers/UserController.cs b/Marco.Pms.Services/Controllers/UserController.cs index 8269d3e..22f8a60 100644 --- a/Marco.Pms.Services/Controllers/UserController.cs +++ b/Marco.Pms.Services/Controllers/UserController.cs @@ -6,8 +6,11 @@ using Marco.Pms.Model.Utilities; using Marco.Pms.Model.ViewModels.Employee; using Marco.Pms.Services.Service.ServiceInterfaces; using MarcoBMS.Services.Helpers; +using MarcoBMS.Services.Service; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; +using System.Net.Mail; namespace MarcoBMS.Services.Controllers { @@ -18,14 +21,17 @@ namespace MarcoBMS.Services.Controllers public class UserController : ControllerBase { private readonly UserHelper _userHelper; + private readonly UserManager _userManager; private readonly EmployeeHelper _employeeHelper; - + private readonly ILoggingService _logger; private readonly IProjectServices _projectServices; private readonly RolesHelper _rolesHelper; - public UserController(EmployeeHelper employeeHelper, IProjectServices projectServices, UserHelper userHelper, RolesHelper rolesHelper) + public UserController(EmployeeHelper employeeHelper, UserManager userManager, ILoggingService logger, IProjectServices projectServices, UserHelper userHelper, RolesHelper rolesHelper) { + _userManager = userManager; _userHelper = userHelper; + _logger = logger; _employeeHelper = employeeHelper; _projectServices = projectServices; _rolesHelper = rolesHelper; @@ -81,5 +87,44 @@ namespace MarcoBMS.Services.Controllers return Ok(ApiResponse.SuccessResponse(profile, "Success", 200)); } + + [HttpGet("email/{email}")] + public async Task GetUserByEmail(string email) + { + var isvalid = IsValidEmail(email); + if (!isvalid) + { + _logger.LogWarning("User provided invalid email address"); + return BadRequest(ApiResponse.ErrorResponse("Invalid email", "Invalid email", 400)); + } + var user = await _userManager.FindByEmailAsync(email); + + if (user == null) + { + _logger.LogInfo("User with email {Email} not found in ASP.NET users table", email); + return Ok(ApiResponse.SuccessResponse(true, "User not exists", 200)); + } + else + { + _logger.LogInfo("User with email {Email} founded in ASP.NET users table", email); + return Ok(ApiResponse.SuccessResponse(false, "User exists", 200)); + } + + } + + private static bool IsValidEmail(string email) + { + if (string.IsNullOrWhiteSpace(email)) + return false; + try + { + var addr = new MailAddress(email); + return addr.Address == email.Trim(); + } + catch + { + return false; + } + } } }