Skip to content

RG-T54 Bug fixes, first pass of Run Cards - #462

Closed
ucswift wants to merge 1 commit into
masterfrom
develop
Closed

RG-T54 Bug fixes, first pass of Run Cards#462
ucswift wants to merge 1 commit into
masterfrom
develop

Conversation

@ucswift

@ucswift ucswift commented Aug 14, 2026

Copy link
Copy Markdown
Member

No description provided.

@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 110 files, which is 10 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 072ece95-26a8-4991-9e56-17abda592bce

📥 Commits

Reviewing files that changed from the base of the PR and between 87f3559 and 4f968e3.

⛔ Files ignored due to path filters (18)
  • Core/Resgrid.Localization/Areas/User/Department/Department.ar.resx is excluded by !**/*.resx
  • Core/Resgrid.Localization/Areas/User/Department/Department.de.resx is excluded by !**/*.resx
  • Core/Resgrid.Localization/Areas/User/Department/Department.en.resx is excluded by !**/*.resx
  • Core/Resgrid.Localization/Areas/User/Department/Department.es.resx is excluded by !**/*.resx
  • Core/Resgrid.Localization/Areas/User/Department/Department.fr.resx is excluded by !**/*.resx
  • Core/Resgrid.Localization/Areas/User/Department/Department.it.resx is excluded by !**/*.resx
  • Core/Resgrid.Localization/Areas/User/Department/Department.pl.resx is excluded by !**/*.resx
  • Core/Resgrid.Localization/Areas/User/Department/Department.resx is excluded by !**/*.resx
  • Core/Resgrid.Localization/Areas/User/Department/Department.sv.resx is excluded by !**/*.resx
  • Core/Resgrid.Localization/Areas/User/Department/Department.uk.resx is excluded by !**/*.resx
  • Tests/Resgrid.Tests/Models/CallTests.cs is excluded by !**/Tests/**
  • Tests/Resgrid.Tests/Services/ChatChannelServiceTests.cs is excluded by !**/Tests/**
  • Tests/Resgrid.Tests/Services/DispatchRecommendationServiceTests.cs is excluded by !**/Tests/**
  • Tests/Resgrid.Tests/Services/GeoMathTests.cs is excluded by !**/Tests/**
  • Tests/Resgrid.Tests/Services/RunCardsServiceTests.cs is excluded by !**/Tests/**
  • Tests/Resgrid.Tests/Web/Services/CallsControllerTests.cs is excluded by !**/Tests/**
  • Tests/Resgrid.Tests/Web/Services/TwilioControllerVoiceVerificationTests.cs is excluded by !**/Tests/**
  • Tests/Resgrid.Tests/Web/User/ProtocolsControllerTests.cs is excluded by !**/Tests/**
📒 Files selected for processing (110)
  • Core/Resgrid.Model/Call.cs
  • Core/Resgrid.Model/DepartmentSettingTypes.cs
  • Core/Resgrid.Model/DispatchRecommendation.cs
  • Core/Resgrid.Model/DispatchRecommendationConfig.cs
  • Core/Resgrid.Model/DispatchRecommendationModes.cs
  • Core/Resgrid.Model/Events/RunCardEvents.cs
  • Core/Resgrid.Model/FeatureFlagKeys.cs
  • Core/Resgrid.Model/GeoMath.cs
  • Core/Resgrid.Model/Repositories/IRunCardActivationsRepository.cs
  • Core/Resgrid.Model/Repositories/IRunCardAlarmLevelsRepository.cs
  • Core/Resgrid.Model/Repositories/IRunCardAvailabilitySelectionsRepository.cs
  • Core/Resgrid.Model/Repositories/IRunCardRoleRequirementsRepository.cs
  • Core/Resgrid.Model/Repositories/IRunCardTriggersRepository.cs
  • Core/Resgrid.Model/Repositories/IRunCardUnitRequirementsRepository.cs
  • Core/Resgrid.Model/Repositories/IRunCardsRepository.cs
  • Core/Resgrid.Model/Repositories/IStationCoverageRequirementsRepository.cs
  • Core/Resgrid.Model/ResolvedPersonnelLocation.cs
  • Core/Resgrid.Model/RunCard.cs
  • Core/Resgrid.Model/RunCardActivation.cs
  • Core/Resgrid.Model/RunCardAlarmLevel.cs
  • Core/Resgrid.Model/RunCardAvailabilitySelection.cs
  • Core/Resgrid.Model/RunCardRoleRequirement.cs
  • Core/Resgrid.Model/RunCardSelectionTypes.cs
  • Core/Resgrid.Model/RunCardTrigger.cs
  • Core/Resgrid.Model/RunCardTriggerTypes.cs
  • Core/Resgrid.Model/RunCardUnitRequirement.cs
  • Core/Resgrid.Model/Services/IDepartmentSettingsService.cs
  • Core/Resgrid.Model/Services/IDispatchRecommendationService.cs
  • Core/Resgrid.Model/Services/IGeoService.cs
  • Core/Resgrid.Model/Services/IPersonnelLocationResolver.cs
  • Core/Resgrid.Model/Services/IRunCardsService.cs
  • Core/Resgrid.Model/StationCoverageRequirement.cs
  • Core/Resgrid.Model/StationDistanceResult.cs
  • Core/Resgrid.Model/UnitLastDispatchTime.cs
  • Core/Resgrid.Model/UserLastDispatchTime.cs
  • Core/Resgrid.Model/WorkflowTemplateVariableCatalog.cs
  • Core/Resgrid.Model/WorkflowTriggerEventType.cs
  • Core/Resgrid.Services/ChatChannelService.cs
  • Core/Resgrid.Services/DepartmentGroupsService.cs
  • Core/Resgrid.Services/DepartmentSettingsService.cs
  • Core/Resgrid.Services/DepartmentsService.cs
  • Core/Resgrid.Services/DispatchRecommendationService.cs
  • Core/Resgrid.Services/GeoService.cs
  • Core/Resgrid.Services/PersonnelLocationResolver.cs
  • Core/Resgrid.Services/RunCardsService.cs
  • Core/Resgrid.Services/ServicesModule.cs
  • Core/Resgrid.Services/SystemAuditsService.cs
  • Core/Resgrid.Services/WorkflowSampleDataGenerator.cs
  • Core/Resgrid.Services/WorkflowTemplateContextBuilder.cs
  • Providers/Resgrid.Providers.Bus/WorkflowEventProvider.cs
  • Providers/Resgrid.Providers.Migrations/Migrations/M0114_WidenSystemAuditsDataColumn.cs
  • Providers/Resgrid.Providers.Migrations/Migrations/M0115_AddRunCards.cs
  • Providers/Resgrid.Providers.Migrations/Migrations/M0116_SeedRunCardsFeatureFlag.cs
  • Providers/Resgrid.Providers.Migrations/Migrations/M0117_AddRunCardActivations.cs
  • Providers/Resgrid.Providers.MigrationsPg/Migrations/M0114_WidenSystemAuditsDataColumnPg.cs
  • Providers/Resgrid.Providers.MigrationsPg/Migrations/M0115_AddRunCardsPg.cs
  • Providers/Resgrid.Providers.MigrationsPg/Migrations/M0116_SeedRunCardsFeatureFlagPg.cs
  • Providers/Resgrid.Providers.MigrationsPg/Migrations/M0117_AddRunCardActivationsPg.cs
  • Repositories/Resgrid.Repositories.DataRepository/Configs/SqlConfiguration.cs
  • Repositories/Resgrid.Repositories.DataRepository/Modules/ApiDataModule.cs
  • Repositories/Resgrid.Repositories.DataRepository/Modules/DataModule.cs
  • Repositories/Resgrid.Repositories.DataRepository/Modules/NonWebDataModule.cs
  • Repositories/Resgrid.Repositories.DataRepository/Modules/TestingDataModule.cs
  • Repositories/Resgrid.Repositories.DataRepository/Queries/RunCards/SelectLastUnitDispatchTimesByDepartmentQuery.cs
  • Repositories/Resgrid.Repositories.DataRepository/Queries/RunCards/SelectLastUserDispatchTimesByDepartmentQuery.cs
  • Repositories/Resgrid.Repositories.DataRepository/Queries/RunCards/SelectRunCardActivationsByCallIdQuery.cs
  • Repositories/Resgrid.Repositories.DataRepository/Queries/RunCards/SelectRunCardAlarmLevelsByRunCardIdQuery.cs
  • Repositories/Resgrid.Repositories.DataRepository/Queries/RunCards/SelectRunCardAvailabilitySelectionsByRunCardIdQuery.cs
  • Repositories/Resgrid.Repositories.DataRepository/Queries/RunCards/SelectRunCardRoleRequirementsByRunCardIdQuery.cs
  • Repositories/Resgrid.Repositories.DataRepository/Queries/RunCards/SelectRunCardTriggersByDepartmentIdQuery.cs
  • Repositories/Resgrid.Repositories.DataRepository/Queries/RunCards/SelectRunCardTriggersByRunCardIdQuery.cs
  • Repositories/Resgrid.Repositories.DataRepository/Queries/RunCards/SelectRunCardUnitRequirementsByRunCardIdQuery.cs
  • Repositories/Resgrid.Repositories.DataRepository/RepositoryBase.cs
  • Repositories/Resgrid.Repositories.DataRepository/RunCardActivationsRepository.cs
  • Repositories/Resgrid.Repositories.DataRepository/RunCardAlarmLevelsRepository.cs
  • Repositories/Resgrid.Repositories.DataRepository/RunCardAvailabilitySelectionsRepository.cs
  • Repositories/Resgrid.Repositories.DataRepository/RunCardRoleRequirementsRepository.cs
  • Repositories/Resgrid.Repositories.DataRepository/RunCardTriggersRepository.cs
  • Repositories/Resgrid.Repositories.DataRepository/RunCardUnitRequirementsRepository.cs
  • Repositories/Resgrid.Repositories.DataRepository/RunCardsRepository.cs
  • Repositories/Resgrid.Repositories.DataRepository/Servers/PostgreSql/PostgreSqlConfiguration.cs
  • Repositories/Resgrid.Repositories.DataRepository/Servers/SqlServer/SqlServerConfiguration.cs
  • Repositories/Resgrid.Repositories.DataRepository/StationCoverageRequirementsRepository.cs
  • Web/Resgrid.Web.Services/Controllers/EmailController.cs
  • Web/Resgrid.Web.Services/Controllers/SignalWireController.cs
  • Web/Resgrid.Web.Services/Controllers/TwilioController.cs
  • Web/Resgrid.Web.Services/Controllers/v4/CallsController.cs
  • Web/Resgrid.Web.Services/Controllers/v4/ChatController.cs
  • Web/Resgrid.Web.Services/Controllers/v4/ConfigController.cs
  • Web/Resgrid.Web.Services/Controllers/v4/RunCardsController.cs
  • Web/Resgrid.Web.Services/Models/v4/Configs/GetConfigResult.cs
  • Web/Resgrid.Web.Services/Models/v4/RunCards/RunCardApiModels.cs
  • Web/Resgrid.Web.Services/Resgrid.Web.Services.xml
  • Web/Resgrid.Web/Areas/User/Apps/src/runtime/customElement.tsx
  • Web/Resgrid.Web/Areas/User/Controllers/DepartmentController.cs
  • Web/Resgrid.Web/Areas/User/Controllers/DispatchController.cs
  • Web/Resgrid.Web/Areas/User/Controllers/GroupsController.cs
  • Web/Resgrid.Web/Areas/User/Controllers/ProtocolsController.cs
  • Web/Resgrid.Web/Areas/User/Controllers/RunCardsController.cs
  • Web/Resgrid.Web/Areas/User/Models/Departments/DispatchSettingsView.cs
  • Web/Resgrid.Web/Areas/User/Models/RunCards/RunCardModels.cs
  • Web/Resgrid.Web/Areas/User/Views/Department/DispatchSettings.cshtml
  • Web/Resgrid.Web/Areas/User/Views/Department/Settings.cshtml
  • Web/Resgrid.Web/Areas/User/Views/Dispatch/NewCall.cshtml
  • Web/Resgrid.Web/Areas/User/Views/Dispatch/ViewCall.cshtml
  • Web/Resgrid.Web/Areas/User/Views/RunCards/Edit.cshtml
  • Web/Resgrid.Web/Areas/User/Views/RunCards/Index.cshtml
  • Web/Resgrid.Web/wwwroot/js/app/internal/dispatch/resgrid.dispatch.newcall.js
  • Workers/Resgrid.Workers.Console/Tasks/DispatchScheduledCallsTask.cs
  • Workers/Resgrid.Workers.Framework/Logic/CallEmailImporterLogic.cs

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@request-info

request-info Bot commented Aug 14, 2026

Copy link
Copy Markdown

Thanks for opening this, but we'd appreciate a little more information. Could you update it with more details?

[Authorize(Policy = ResgridResources.Call_Update)]
public async Task<IActionResult> EscalateCall(string callId, CancellationToken cancellationToken)
{
if (string.IsNullOrWhiteSpace(callId) || !int.TryParse(callId, out var parsedCallId))
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[Authorize(Policy = ResgridResources.Department_Update)]
public async Task<ActionResult> SaveRunCard([FromBody] RunCardData input, CancellationToken cancellationToken)
[Authorize(Policy = ResgridResources.Department_Update)]
public async Task<ActionResult> SaveRunCard([FromBody] RunCardData input, CancellationToken cancellationToken)
{
if (input == null || string.IsNullOrWhiteSpace(input.Name) || input.Triggers == null || !input.Triggers.Any()
[Authorize(Policy = ResgridResources.Department_Update)]
public async Task<ActionResult> SaveRunCard([FromBody] RunCardData input, CancellationToken cancellationToken)
{
if (input == null || string.IsNullOrWhiteSpace(input.Name) || input.Triggers == null || !input.Triggers.Any()
public async Task<ActionResult> SaveRunCard([FromBody] RunCardData input, CancellationToken cancellationToken)
{
if (input == null || string.IsNullOrWhiteSpace(input.Name) || input.Triggers == null || !input.Triggers.Any()
|| input.AlarmLevels == null || !input.AlarmLevels.Any())
[Authorize(Policy = ResgridResources.Department_Update)]
public async Task<IActionResult> Save([FromBody] RunCardEditInput input, CancellationToken cancellationToken)
{
if (input == null)
if (string.IsNullOrWhiteSpace(input.Name))
return Json(new { success = false, message = "A run card needs a name." });

if (input.Triggers == null || !input.Triggers.Any())
if (input.Triggers == null || !input.Triggers.Any())
return Json(new { success = false, message = "A run card needs at least one trigger." });

if (input.AlarmLevels == null || !input.AlarmLevels.Any())
return Json(new { success = false, message = "A run card needs at least one alarm level." });

RunCard card;
if (input.RunCardId > 0)

[HttpPost]
[Authorize(Policy = ResgridResources.Department_Update)]
public async Task<IActionResult> Delete([FromForm] int runCardId, CancellationToken cancellationToken)
@ucswift ucswift closed this Aug 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants