14 Commits

Author SHA1 Message Date
5a6c57bade Add unsubscribe list management functionality
This commit introduces comprehensive functionality for managing unsubscribe lists within the application. Key changes include:

- Creation of new DTOs, services, repositories, and controllers for unsubscribe list operations.
- Updates to `MailingsController.cs` and `TestEmailListsController.cs` to include necessary using directives.
- Registration of `IUnsubscribeListService` and `IUnsubscribeListRepository` in `Program.cs`.
- Implementation of the `UnsubscribeListsController` with API endpoints for CRUD operations.
- Introduction of the `UnsubscribeList` entity and its mapping to database columns.
- Modifications to existing classes, including `Mailing` and `Target`, to reference unsubscribe lists.
- Frontend updates to TypeScript interfaces and components for displaying and selecting unsubscribe lists.

These enhancements provide a more robust email management system.
2025-08-24 08:04:53 -05:00
ba01cfcaf7 Refactor authentication and restructure project architecture
This commit removes the `AuthenticationController.cs` and related DTOs, indicating a shift in authentication handling. The `BaseController.cs` has been updated to remove the authorization attribute, affecting access control. Multiple controllers have been restructured to reference `Surge365.Core.Controllers`.

Significant changes in `Program.cs` enhance security and service management with new middleware and JWT configurations. The project file now includes references to `Surge365.Core`, and the `IAuthService` interface has been updated accordingly.

React components have been modified to support the new authentication flow, including token refresh handling. The `customFetch.ts` utility has been improved for better session management. Mapping classes have been introduced or updated for improved entity mapping.

Overall, these changes enhance the application's architecture, security, and data handling processes.
2025-06-28 09:26:41 -05:00
3bd334f239 Integrate Azure Key Vault and refactor authentication
Updated the application to use Azure Key Vault for managing secrets, including the addition of a new `SurgeKeyVaultSecretManager` class. Modified configuration files to include `KeyVaultName` and removed sensitive `Jwt` sections for enhanced security.

Refactored `IAuthService` and `IUserRepository` to utilize DTOs instead of the `User` entity. Removed the `UserMap` class and updated the `UserRepository` to focus on DTOs for user management.

The `AuthService` class now communicates with an external API for authentication, and new classes for API requests and responses have been added. Updated project dependencies to support Azure Key Vault integration.
2025-04-24 16:32:26 -05:00
51c267e48f Add API endpoints for emails and templates retrieval
- Introduced new endpoints in `MailingsController.cs` for fetching emails and templates by mailing ID.
- Updated `MailingUpdateDto` to include `MailingTemplateUpdateDto`.
- Extended `IMailingRepository` and `IMailingService` with methods for emails, templates, and targets.
- Modified `Mailing` class to include a `MailingTemplate` property; removed `SessionActivityId`.
- Implemented new methods in `MailingRepository` with adjusted SQL queries.
- Created new entity classes: `MailingEmail`, `MailingTarget`, and `MailingTemplate`.
- Added mapping configurations for new entities in Dapper maps.
- Updated `MailingEdit.tsx` and `MailingView.tsx` components for new structures and improved UI handling.
- Adjusted `Mailing` interface and created TypeScript interfaces for new entities.
2025-04-14 16:09:07 -05:00
f5b1fe6397 Update mailing and target management features
- Added new methods for creating mailings and testing targets.
- Updated configuration files for JWT settings and connection strings.
- Introduced new DTOs for target column updates and test targets.
- Enhanced MailingStatistic with a new SentDate property.
- Created new components for handling cancelled mailings and target samples.
- Refactored authentication in Login.tsx to use fetch API.
- Updated various services and repositories to support new functionalities.
2025-04-07 12:13:44 -05:00
035a2e1dae Add mailing statistics endpoints and frontend components
Updated `MailingsController` to include endpoints for retrieving mailing statistics by status and ID. Modified `IMailingRepository` and `IMailingService` to support new methods for fetching statistics and canceling mailings. Introduced `MailingStatistic` class and corresponding Dapper mappings.

In the React frontend, added `ActiveMailings` and `CompletedMailings` components to display statistics, along with a `ConfirmationDialog` for canceling mailings. Updated authentication management in `AuthCheck` and `AuthContext`. Created `mailingStatistic.ts` for TypeScript interface definition.
2025-03-25 14:02:02 -05:00
f4ac033c70 Refactor mailing and target sample management features
- Updated `UpdateMailing` to convert dates from UTC to local time.
- Renamed `GetTargetSample` to `TestTargetAsync` in `TargetsController`.
- Added `ConnectionStringTemplate` to `appsettings.Development.json`.
- Introduced `TestTargetSql` in `appsettings.json` for SQL queries.
- Created a new `TargetSample` class for target sample data structure.
- Updated `ITargetRepository` and `ITargetService` interfaces for new method signatures.
- Implemented `TestTargetAsync` in `TargetRepository` for sample data retrieval.
- Enhanced `MailingEdit.tsx` with new imports and validation for date fields.
- Added `MailingView` component for displaying mailing details.
- Introduced `ScheduleMailings` component for managing scheduled mailings.
- Updated `TargetSampleViewer` to accommodate new data structure.
- Modified routing in `App.tsx` to include scheduled mailings.
- Adjusted `NewMailings` component to manage mailing updates and removals.
2025-03-23 19:15:17 -05:00
12bfdf57ce Add target sample data retrieval and viewer components
- Implemented `GetTargetSample` in `TargetsController` for fetching target sample data.
- Updated `ITargetRepository` and `ITargetService` with `GetSampleData` method.
- Created `TargetSample` class to structure sample data.
- Added `GetSampleData` method in `TargetRepository` with hardcoded sample data.
- Enhanced `MailingEdit.tsx` to manage target sample visibility and validation.
- Introduced `TargetSampleViewer` and `TemplateViewer` components for displaying data in dialogs.
- Made minor adjustments in `Servers.tsx` for better row handling.
2025-03-21 19:30:41 -05:00
a5fd034a31 Add mailing functionality and improve authentication
- Implemented Logout and RefreshToken methods in AuthenticationController.
- Added IMailingService and IMailingRepository to Program.cs.
- Updated project structure in Surge365.MassEmailReact.API.csproj.
- Modified API host address and endpoints in Server.http.
- Introduced AuthAppCode in appsettings.json for context distinction.
- Changed GenerateTokens method to async in IAuthService.
- Initialized string properties in User.cs to avoid null values.
- Added new Mailing mapping in DapperConfiguration.cs.
- Created MailingsController for handling mailing operations.
- Developed Mailing, MailingUpdateDto, IMailingService, and IMailingRepository classes.
- Updated frontend with MailingEdit and NewMailings components.
- Enhanced authentication handling in AuthCheck.tsx and AuthContext.tsx.
- Introduced ProtectedPageWrapper for route protection based on roles.
- Added EmailList component for email input validation.
- Updated utils.ts for token and cookie management functions.
- Modified vite.config.ts for new HTTPS certificate name.
- Updated CHANGELOG.md to reflect recent changes.
2025-03-21 07:38:46 -05:00
2bdb1a8de6 Implement RESTful APIs for email management features
Created controllers for managing bounced emails, email domains, templates, test email lists, and unsubscribe URLs. Modified the ServersController for improved routing. Added DTOs and repository interfaces for new functionalities. Updated SetupDataContext for state management and adjusted frontend components for user interaction. Updated package dependencies for new features.
2025-03-03 19:15:16 -06:00
6f00235702 Add target and server management features
- Implemented CreateTarget and updated UpdateTarget methods in TargetsController.
- Introduced IServerService and IServerRepository for server operations.
- Created ServersController for handling server-related API requests.
- Added ServerUpdateDto for server updates and enhanced Target/Server classes with default values.
- Updated TargetRepository and TargetService for target creation and updates.
- Modified DapperConfiguration for server mappings.
- Updated package dependencies for form validation and state management.
- Enhanced Layout.tsx for improved responsiveness and user experience.
- Added TitleContext for managing page titles.
- Updated Servers.tsx and ServerEdit.tsx for server data handling.
- Improved error handling and loading states across components.
2025-02-28 09:33:38 -06:00
4180e50c9c Refactor authentication and implement target management
- Updated `AuthenticationController` to return user data instead of token.
- Added `ITargetService` and `ITargetRepository` to `Program.cs`.
- Enhanced `appsettings.json` with connection timeout and security notes.
- Modified `IAuthService` to reflect new authentication response structure.
- Implemented connection retry mechanism in `DataAccess.cs`.
- Refactored UI components to use MUI styling in `Layout.tsx`, `App.tsx`, and others.
- Created new files for target management, including `TargetsController`, `TargetUpdateDto`, and related services.
- Added `TargetEdit` modal for editing target details and `LineChartSample` for data visualization.
- Updated package dependencies in `package-lock.json` and project file.
2025-02-26 17:42:40 -06:00
b3f266f9a8 Enhance authentication features and refactor codebase
Updated `AuthenticationController` with new methods for authentication, token refresh, and password recovery. Improved error handling and response structure.

Refactored dependency injection in `Program.cs` and added JWT settings in `appsettings.json`. Removed unused `Class1.cs` files.

Introduced new DTOs for authentication requests and updated `IAuthService` and `IUserRepository` interfaces. Enhanced `User` class and added `AuthResult` enum for standardized responses.

Expanded `DataAccess` for better database operations and updated `UserRepository` and `AuthService` to implement new authentication logic.

Front-end changes include renaming variables for consistency and updating the `ForgotPasswordModal` and `Login.tsx` components to use usernames instead of email addresses.

Updated API proxy path in `vite.config.ts` and ensured proper typing for `API_BASE_URL` in global TypeScript definitions.
2025-02-22 18:45:37 -06:00
f8df86f1b4 Refactor project structure and remove deprecated features
- Updated README.md to include "Project Structure" section.
- Removed WeatherForecastController.cs and WeatherForecast.cs.
- Simplified Surge365.MassEmailReact.Server.csproj.
- Updated solution file to reflect new project references.
- Refactored jquery.ss.dbmanager-1.0.js and jquery.usahaulers.global.js.
- Modified logging functionalities in jquery.usahaulers.logging-1.0.js.
- Set up constants from environment variables in constants.js and constants.ts.
- Introduced new classes in Surge365.MassEmailReact.Application, Domain, and Infrastructure.
- Added UnitTest1.cs for basic unit testing structure.
- Enhanced Surge365.MassEmailReact.Web.esproj with new configurations.
- Expanded utility functions in ytb-massemail-.global.ts and ytb-massemail-utilities-1.0.ts.
2025-02-20 08:09:21 -06:00