Skip to content
Merged

Dev #2319

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,32 +25,32 @@ public override void Define(IPermissionDefinitionContext context)
AIPermissions.Analysis.AnalysisDefault,
L("Permission:AI.Analysis"));

analysisParent.AddChild(
var viewApplicationAnalysis = analysisParent.AddChild(
AIPermissions.Analysis.ViewApplicationAnalysis,
L("Permission:AI.Analysis.ViewApplicationAnalysis"))
.RequireFeatures("Unity.AI.ApplicationAnalysis");

analysisParent.AddChild(
AIPermissions.Analysis.ViewAttachmentSummary,
L("Permission:AI.Analysis.ViewAttachmentSummary"))
.RequireFeatures("Unity.AI.AttachmentSummaries");

analysisParent.AddChild(
AIPermissions.Analysis.ViewScoringResult,
L("Permission:AI.Analysis.ViewScoringResult"))
.RequireFeatures("Unity.AI.Scoring");

analysisParent.AddChild(
viewApplicationAnalysis.AddChild(
AIPermissions.Analysis.GenerateApplicationAnalysis,
L("Permission:AI.Analysis.GenerateApplicationAnalysis"))
.RequireFeatures("Unity.AI.ApplicationAnalysis");

analysisParent.AddChild(
var viewAttachmentSummary = analysisParent.AddChild(
AIPermissions.Analysis.ViewAttachmentSummary,
L("Permission:AI.Analysis.ViewAttachmentSummary"))
.RequireFeatures("Unity.AI.AttachmentSummaries");

viewAttachmentSummary.AddChild(
AIPermissions.Analysis.GenerateAttachmentSummaries,
L("Permission:AI.Analysis.GenerateAttachmentSummaries"))
.RequireFeatures("Unity.AI.AttachmentSummaries");

analysisParent.AddChild(
var viewScoringResult = analysisParent.AddChild(
AIPermissions.Analysis.ViewScoringResult,
L("Permission:AI.Analysis.ViewScoringResult"))
.RequireFeatures("Unity.AI.Scoring");

viewScoringResult.AddChild(
AIPermissions.Analysis.GenerateScoring,
L("Permission:AI.Analysis.GenerateScoring"))
.RequireFeatures("Unity.AI.Scoring");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

namespace Unity.GrantManager.Attachments;

[Authorize(AIPermissions.Analysis.ViewAttachmentSummary)]
[Authorize(AIPermissions.Analysis.GenerateAttachmentSummaries)]
[ExposeServices(typeof(AttachmentSummaryAppService), typeof(IAttachmentSummaryAppService))]
public class AttachmentSummaryAppService(
IAttachmentSummaryService attachmentSummaryService,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace Unity.GrantManager.GrantApplications;

[Authorize(AIPermissions.Analysis.ViewApplicationAnalysis)]
[Authorize(AIPermissions.Analysis.GenerateApplicationAnalysis)]
public class ApplicationAnalysisAppService(
IApplicationAnalysisService applicationAnalysisService,
IFeatureChecker featureChecker)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace Unity.GrantManager.GrantApplications;

[Authorize(AIPermissions.Analysis.ViewScoringResult)]
[Authorize(AIPermissions.Analysis.GenerateScoring)]
public class ApplicationScoringAppService(
IApplicationScoringService applicationScoringService,
IFeatureChecker featureChecker)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
using Microsoft.Extensions.Logging;
using System;
using System.Threading.Tasks;
using Unity.AI.Settings;
using Unity.GrantManager.Applications;
using Unity.GrantManager.GrantApplications.Automation.BackgroundJobs;
using Unity.GrantManager.Intakes.Events;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.DependencyInjection;
using Volo.Abp.EventBus;
using Volo.Abp.Settings;

namespace Unity.GrantManager.GrantApplications.Automation.Handlers;

public class QueueApplicationAIPipelineOnProcessHandler(
IBackgroundJobManager backgroundJobManager,
ISettingProvider settingProvider,
IApplicationFormRepository applicationFormRepository,
ILogger<QueueApplicationAIPipelineOnProcessHandler> logger) : ILocalEventHandler<ApplicationProcessEvent>, ITransientDependency
{
public async Task HandleEventAsync(ApplicationProcessEvent eventData)
Expand All @@ -18,6 +25,21 @@ public async Task HandleEventAsync(ApplicationProcessEvent eventData)
logger.LogWarning("Event data or application is null in QueueApplicationAIPipelineOnProcessHandler.");
return;
}

var automaticGenerationEnabled = await settingProvider.GetAsync<bool>(AISettings.AutomaticGenerationEnabled, defaultValue: false);
if (!automaticGenerationEnabled)
{
logger.LogDebug("Automatic AI generation is disabled at tenant level, skipping intake pipeline for application {ApplicationId}.", eventData.Application.Id);
return;
}

var applicationForm = await applicationFormRepository.GetAsync(eventData.Application.ApplicationFormId);
if (!applicationForm.AutomaticallyGenerateAIAnalysis)
{
logger.LogDebug("Automatic AI analysis is disabled at form level for application {ApplicationId}, skipping intake pipeline.", eventData.Application.Id);
return;
}

try
{
await backgroundJobManager.EnqueueAsync(new RunApplicationAIPipelineJobArgs
Expand Down
Loading
Loading