- Updated `TargetSample` class to include `TotalRows` property.
- Set `TotalRows` in `TargetRepository` based on database query.
- Added state management for `targetSample` and loading in `MailingEdit.tsx`.
- Modified rendering logic in `MailingEdit.tsx` to display total rows.
- Updated `TargetSampleModal` to accept `targetSample` as a prop.
- Created new `targetSample.ts` file defining the `TargetSample` interface.
- 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.
- Added HTTP client configuration for SendGrid in Program.cs.
- Cleaned up appsettings files for development and production environments.
- Modified MailingService to use IHttpClientFactory for SendGrid.
- Enhanced NewMailings component with cancel functionality and confirmation dialog.
- Updated project dependencies in .csproj and created package-lock.json.
Updated Autocomplete options to use filtered lists of active targets, templates, and email domains. This change ensures that only active items are displayed in the dropdowns for selection.
Updated the `dateStr` variable in the `RecentMailingStatsChart` function to use `dayjs.utc(currentDate).format('YYYY-MM-DD')` instead of the previous method. This change ensures consistent date formatting across different time zones when aggregating statistics.
- Import additional Dayjs plugins for UTC and timezone support.
- Update start and end dates to reflect the start and end of the day.
- Fetch mailing statistics using formatted date strings in the correct timezone.
- Modify statistics aggregation to include all dates in the range.
- Change aggregation method from `reduce` to `forEach`.
- Update x-axis value formatter to use UTC date formatting.
- Updated `AuthenticationController` to handle refresh tokens and store them in the database.
- Modified `IAuthService` and `IUserRepository` to support new authentication logic using refresh tokens.
- Removed `GenerateTokens` method and added `SaveRefreshToken` method.
- Adjusted database mappings in `UserMap`.
- Enhanced `AuthService` to implement new authentication flow.
- Removed `LayoutAdminLTE.tsx`, simplifying the layout structure.
- Improved theme initialization in `App.tsx` for persistent settings.
- Cleaned up component files (`Home`, `Login`, `Targets`, `Templates`) by removing boilerplate code.
- Added `eslint.config.js` for ESLint configuration.
- Introduced `ThemeWrapper.tsx` for managing theme settings (implementation commented out).
- 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.
- Updated `MailingsController` with new endpoints for name availability and next available name.
- Modified existing methods to accept optional date parameters.
- Introduced `TestMailingDto` for testing mailings with email addresses.
- Updated `IMailingRepository` and `IMailingService` interfaces for new methods.
- Enhanced `MailingRepository` and `MailingService` to support new logic for testing and sending emails.
- Updated `appsettings.json` with new SendGrid settings and default unsubscribe URL.
- Modified `MailingEdit` component to fetch next available name and handle test mailings.
- Added search filters for start and end dates in `CompletedMailings` component.
- Included `react-toastify` for notifications in `package.json` and `package-lock.json`.
- Updated `App` component to include `ToastContainer` for displaying notifications.
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.
- 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.
- 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.
- 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.
- Changed namespaces for controllers to better organize API components.
- Updated base class for controllers to `BaseController` with standard routing.
- Simplified method signatures by removing `id` parameters in entity creation methods.
- Introduced new `CreateAsync` methods in service and repository layers.
- Removed dependencies on `font-awesome` and `ionicons` from package files.
- Migrated UI components to Material-UI, enhancing consistency and design.
- Refactored `ForgotPasswordModal` to use Material-UI's `Dialog`.
- Implemented `yup` validation in form components for stricter checks.
- Cleaned up unused styles in CSS files for a cleaner codebase.
- Updated interfaces to require `id` property for stricter type checks.
- Improved error handling and user feedback in the `Login` component.
- Added action buttons for adding and refreshing data in various components.
Updated EmailDomainsController to support password retrieval.
Modified repository and service interfaces to include a new
optional `returnPassword` parameter. Transitioned from Tiptap
to Monaco Editor for rich text editing. Improved UI for
EmailDomainEdit and TemplateEdit components, added password
visibility toggle in EmailDomains, and refined data grid
layout in Templates.
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.
- 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.
- 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.
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.
- Updated project setup to use Vite for React application.
- Removed unnecessary files and simplified configurations.
- Enhanced authentication and routing in the application.
- Improved code quality with ESLint and updated styles.
- Added new components for better user experience, including a password recovery modal.
- Updated documentation for clearer setup instructions.
Revised the dependency order in the project structure.
The `Surge365.MassEmailReact.API` now depends on both
`Application` and `Infrastructure`. Removed the reference
to `Infrastructure` in `Surge365.MassEmailReact.Application.csproj`.
Updated `Surge365.MassEmailReact.Infrastructure.csproj` to
include references to both `Application` and `Domain`.
Modified `Surge365.MassEmailReact.API.csproj` to include
a reference to `Surge365.MassEmailReact.Infrastructure`.
- 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.
Added detailed instructions for cloning the project and setting up the development environment, including commands for Git, Node.js installation via nvm for Windows, and verification steps for Node.js and npm versions.