C#Bot Release


Adding ESLint to React

The major focus of this release is adding ESLint to React. ESLint is a static analysis tool that can find problems, enforce styling, and suggest code changes.

With this release, you can expect to see substantial improvements to the quality of the clientside code base with changes to over 200 files and thousands of lines of code.

It was brought in with the goal of making our code more consistent, and help developers follow best practice.
ESLint has been configured to the industry standard with slight adjustments to suit generated code.


  • Add Has conditions to ModelQeury.
  • S3StorageProviderConfiguration now extends the official AmazonS3Config class allowing any available S3 settings to be configured from appsettings.
  • The IUploadStorageProvider is now registered as a singleton service instead of scoped.
  • Protected regions added to AuditLogging & ToastifyUtils, making it more configurable.
  • Added fetchAndCount method to remove extra calls to the count endpoint.
  • Added AWSSDK.SecurityToken as a server dependency.

Resolved defects

  • Decimals as required fields will no longer break Bot-Written tests.
  • Models with only User entity’s will no longer break Bot-Written tests.
  • Removed unnecessary return for itemSelectionChanged in EntityCollection.tsx.
  • GraphQL now correctly enforces the unique property on attributes.

Migration Path

Unformatted code in protected regions

It’s likely that improperly formatted custom code may cause the clientside to not compile after the upgrade. This is because any issues found by ESLint are reported as errors by default.

To resolve this, fix the errors reported in the clientside console log, or your browsers console log.

Otherwise, you may chose to convert these errors to warnings which will let the clientside compile. This can be done by setting the following environment variables in clientside/.env.development and clientside/.env.test as shown below.

# % protected region % [Add additional variables here] on begin
# % protected region % [Add additional variables here] end

Buttons created as divs or a tags

In previous versions of C#Bot, some buttons were created as div or a tags with onClick functions. We have updated these to button tags which may cause custom Selenium tests to fail.

This can be fixed by updating the test to find the correct element on the page.