public async Task <SuccessResponseDTO <LoginResponseModel> > Handle(LoginUserCommand request, CancellationToken cancellationToken) { SuccessResponseDTO <LoginResponseModel> successResponseDTO; try { if (!string.IsNullOrEmpty(request.Password)) { //decrypt password string password = EncryptionDecryptionUsingSymmetricKey.EncryptString(request.SceretKey, request.Password); if (!string.IsNullOrEmpty(request.Email)) { string email = request.Email?.Split("@")[0]; //get tenant id from db Guid TenantId = _jewelleryContext.Tenants.Where(t => t.TenantName == request.TenantName).Select(t => t.TenantId).FirstOrDefault(); if (TenantId != null && TenantId != Guid.Empty) { //get user details from db LoginResponseModel loginResponseModel = _jewelleryContext.Users.Where(u => u.TenantId == TenantId && u.IsActive && u.UserName == email && u.Password == password).Join(_jewelleryContext.Roles, user => user.RoleId, role => role.RoleId, (user, role) => new LoginResponseModel { TenantId = user.TenantId, Email = user.UserName, FirstName = user.FirstName, LastName = user.LastName, Role = role.RoleName, UserId = user.UserId, IsDiscount = role.RoleName == Constants.Privileged ? true : false }).FirstOrDefault(); if (loginResponseModel != null) { //generate jwt token string token = request.JWTAuth.GenerateToken(loginResponseModel, DateTime.UtcNow.AddMinutes(60)); if (!string.IsNullOrEmpty(token)) { var user = _jewelleryContext.Users.Where(u => u.UserId == loginResponseModel.UserId).First(); user.Token = token; _jewelleryContext.SaveChanges(); loginResponseModel.Token = token; successResponseDTO = new SuccessResponseDTO <LoginResponseModel>().CreateSuccessResponse(loginResponseModel, "200", Constants.Sucessfully_logged_in, Convert.ToString(loginResponseModel.TenantId), "", request.TenantName); return(successResponseDTO); } else { successResponseDTO = new SuccessResponseDTO <LoginResponseModel>().CreateSuccessResponse(loginResponseModel, "500", Constants.Token_is_not_generated, Convert.ToString(loginResponseModel.TenantId), "", request.TenantName); return(successResponseDTO); } } else { successResponseDTO = new SuccessResponseDTO <LoginResponseModel>().CreateSuccessResponse(new LoginResponseModel(), "500", Constants.Username_or_password_is_incorrect, null, "", request.TenantName); return(successResponseDTO); } } else { successResponseDTO = new SuccessResponseDTO <LoginResponseModel>().CreateSuccessResponse(new LoginResponseModel(), "500", Constants.Client_doesn_not_exist, "", "", request.TenantName); return(successResponseDTO); } } else { successResponseDTO = new SuccessResponseDTO <LoginResponseModel>().CreateSuccessResponse(new LoginResponseModel(), "500", Constants.Email_is_required, "", "", request.TenantName); return(successResponseDTO); } } else { successResponseDTO = new SuccessResponseDTO <LoginResponseModel>().CreateSuccessResponse(new LoginResponseModel(), "500", Constants.Password_is_required, "", "", request.TenantName); return(successResponseDTO); } } catch (Exception ex) { //log exception successResponseDTO = new SuccessResponseDTO <LoginResponseModel>().CreateSuccessResponse(new LoginResponseModel(), "500", ex.ToString(), "", "", request.TenantName); return(successResponseDTO); } }
private readonly static string _secretKey = "z14ca58u8a4e4n38ntce2eaj908a5687"; // secret key is hide public static string EncryptPassword(string password) { // code is hide return(EncryptionDecryptionUsingSymmetricKey.EncryptString(_secretKey, password));//🧨 }