Skip to content

Commit 2984ec7

Browse files
committed
Adding the new stats for the "Miljøtilsyn" tag.
1 parent 77f389a commit 2984ec7

File tree

3 files changed

+73
-42
lines changed

3 files changed

+73
-42
lines changed

eFormAPI/Plugins/BackendConfiguration.Pn/BackendConfiguration.Pn/EformBackendConfigurationPlugin.cs

Lines changed: 61 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3434
using Microting.EformAngularFrontendBase.Infrastructure.Data.Factories;
3535
using Microting.EformBackendConfigurationBase.Infrastructure.Data.Entities;
3636
using Microting.EformBackendConfigurationBase.Infrastructure.Enum;
37+
using Microting.ItemsPlanningBase.Infrastructure.Data.Entities;
3738
using QuestPDF.Infrastructure;
3839
using Sentry;
3940

@@ -531,13 +532,15 @@ private static async void SeedEForms(IServiceCollection services)
531532
folder.IsEditable = false;
532533
await folder.Update(sdkDbContext).ConfigureAwait(false);
533534
}
535+
534536
// join the table Folder with the FolderTranslations to find the "Exceeded tasks" folder with the parentId set to the property.FolderId
535537
var folderAndFolderTranslation = await sdkDbContext.Folders
536538
.Join(sdkDbContext.FolderTranslations,
537539
lookupFolder => lookupFolder.Id,
538540
folderTranslation => folderTranslation.FolderId,
539541
(lookupFolder, folderTranslation) => new {lookupFolder, folderTranslation})
540-
.Where(x => x.lookupFolder.ParentId == folder.Id && x.folderTranslation.Name == "00. Overdue tasks")
542+
.Where(x => x.lookupFolder.ParentId == folder.Id &&
543+
x.folderTranslation.Name == "00. Overdue tasks")
541544
.FirstOrDefaultAsync();
542545
if (folderAndFolderTranslation == null) // if the folder does not exist create it
543546
{
@@ -547,47 +550,44 @@ private static async void SeedEForms(IServiceCollection services)
547550
newFolder.ManagedByPlugin = true;
548551
newFolder.IsEditable = false;
549552
await newFolder.Update(sdkDbContext).ConfigureAwait(false);
550-
} else
553+
}
554+
else
551555
{
552556
var existingFolder = folderAndFolderTranslation.lookupFolder;
553-
if (!existingFolder.IsLocked || !existingFolder.ManagedByPlugin || !existingFolder.IsEditable)
557+
if (!existingFolder.IsLocked || !existingFolder.ManagedByPlugin || existingFolder.IsEditable ||
558+
!existingFolder.ChildrenProhibited)
554559
{
555560
existingFolder.IsLocked = true;
556561
existingFolder.ManagedByPlugin = true;
557562
existingFolder.IsEditable = false;
563+
existingFolder.ChildrenProhibited = true;
558564
await existingFolder.Update(sdkDbContext).ConfigureAwait(false);
559565
}
560566
}
561567

562568
var folderForNewTasks = await sdkDbContext.Folders
563569
.FirstOrDefaultAsync(x => x.Id == property.FolderIdForNewTasks);
564-
if (folderForNewTasks is { IsLocked: false })
565-
{
566-
folderForNewTasks.IsLocked = true;
567-
folderForNewTasks.ManagedByPlugin = true;
568-
folderForNewTasks.IsEditable = false;
569-
await folderForNewTasks.Update(sdkDbContext).ConfigureAwait(false);
570-
}
570+
folderForNewTasks.IsLocked = true;
571+
folderForNewTasks.ManagedByPlugin = true;
572+
folderForNewTasks.IsEditable = false;
573+
folderForNewTasks.ChildrenProhibited = true;
574+
await folderForNewTasks.Update(sdkDbContext).ConfigureAwait(false);
571575

572576
var folderForCompletedTasks = await sdkDbContext.Folders
573577
.FirstOrDefaultAsync(x => x.Id == property.FolderIdForCompletedTasks);
574-
if (folderForCompletedTasks is { IsLocked: false })
575-
{
576-
folderForCompletedTasks.IsLocked = true;
577-
folderForCompletedTasks.ManagedByPlugin = true;
578-
folderForCompletedTasks.IsEditable = false;
579-
await folderForCompletedTasks.Update(sdkDbContext).ConfigureAwait(false);
580-
}
578+
folderForCompletedTasks.IsLocked = true;
579+
folderForCompletedTasks.ManagedByPlugin = true;
580+
folderForCompletedTasks.IsEditable = false;
581+
folderForNewTasks.ChildrenProhibited = true;
582+
await folderForCompletedTasks.Update(sdkDbContext).ConfigureAwait(false);
581583

582584
var folderForOngoingTasks = await sdkDbContext.Folders
583585
.FirstOrDefaultAsync(x => x.Id == property.FolderIdForOngoingTasks);
584-
if (folderForOngoingTasks is { IsLocked: false })
585-
{
586-
folderForOngoingTasks.IsLocked = true;
587-
folderForOngoingTasks.ManagedByPlugin = true;
588-
folderForOngoingTasks.IsEditable = false;
589-
await folderForOngoingTasks.Update(sdkDbContext).ConfigureAwait(false);
590-
}
586+
folderForOngoingTasks.IsLocked = true;
587+
folderForOngoingTasks.ManagedByPlugin = true;
588+
folderForOngoingTasks.IsEditable = false;
589+
folderForNewTasks.ChildrenProhibited = true;
590+
await folderForOngoingTasks.Update(sdkDbContext).ConfigureAwait(false);
591591
}
592592

593593
var itemPlanningTag =
@@ -597,23 +597,23 @@ private static async void SeedEForms(IServiceCollection services)
597597
itemPlanningTag.IsLocked = true;
598598
await itemPlanningTag.Update(itemsPlanningContext).ConfigureAwait(false);
599599
}
600-
} catch (Exception ex)
600+
}
601+
catch (Exception ex)
601602
{
602603
Console.WriteLine(ex.Message);
603604
SentrySdk.CaptureException(ex);
604605
}
605-
606606
}
607607

608-
var parentFolderTranslation =
608+
var parentFolderTranslations =
609609
await sdkDbContext.Folders
610610
// .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed)
611611
.Include(x => x.FolderTranslations)
612612
.Where(x => x.ParentId == null)
613613
.AsNoTracking()
614-
.FirstOrDefaultAsync(x =>
615-
x.FolderTranslations.Any(y => y.Name == "00.03 Andres opgaver"));
616-
if (parentFolderTranslation != null)
614+
.Where(x =>
615+
x.FolderTranslations.Any(y => y.Name == "00.03 Andres opgaver")).ToListAsync();
616+
foreach (var parentFolderTranslation in parentFolderTranslations)
617617
{
618618
var folder = await sdkDbContext.Folders
619619
.FirstAsync(x => x.ParentId == parentFolderTranslation.Id);
@@ -625,24 +625,44 @@ await sdkDbContext.Folders
625625
await folder.Update(sdkDbContext).ConfigureAwait(false);
626626
}
627627
}
628-
var ft =
628+
629+
parentFolderTranslations =
629630
await sdkDbContext.Folders
630631
// .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed)
631632
.Include(x => x.FolderTranslations)
632633
.Where(x => x.ParentId == null)
633634
.AsNoTracking()
634-
.FirstOrDefaultAsync(x =>
635-
x.FolderTranslations.Any(y => y.Name == "00.01 Mine hasteopgaver"));
636-
if (ft != null)
635+
.Where(x =>
636+
x.FolderTranslations.Any(y => y.Name == "00.01 Mine hasteopgaver")).ToListAsync();
637+
foreach (var parentFolderTranslation in parentFolderTranslations)
638+
{
639+
var folder = await sdkDbContext.Folders
640+
.FirstAsync(x => x.ParentId == parentFolderTranslation.Id);
641+
if (!folder.IsLocked || !folder.ManagedByPlugin || !folder.IsEditable)
642+
{
643+
folder.IsLocked = true;
644+
folder.ManagedByPlugin = true;
645+
folder.IsEditable = false;
646+
await folder.Update(sdkDbContext).ConfigureAwait(false);
647+
}
648+
}
649+
650+
var envTag = await itemsPlanningContext.PlanningTags.Where(x => x.Name == "Miljøtilsyn").FirstOrDefaultAsync();
651+
switch (envTag)
637652
{
638-
var f = await sdkDbContext.Folders
639-
.FirstAsync(x => x.ParentId == ft.Id);
640-
if (!f.IsLocked || !f.ManagedByPlugin || !f.IsEditable)
653+
case {IsLocked: false}:
654+
envTag.IsLocked = true;
655+
await envTag.Update(itemsPlanningContext).ConfigureAwait(false);
656+
break;
657+
case null:
641658
{
642-
f.IsLocked = true;
643-
f.ManagedByPlugin = true;
644-
f.IsEditable = false;
645-
await f.Update(sdkDbContext).ConfigureAwait(false);
659+
var newTag = new PlanningTag
660+
{
661+
Name = "Miljøtilsyn",
662+
IsLocked = true
663+
};
664+
await newTag.Create(itemsPlanningContext).ConfigureAwait(false);
665+
break;
646666
}
647667
}
648668

eFormAPI/Plugins/BackendConfiguration.Pn/BackendConfiguration.Pn/Infrastructure/Models/Compliances/CompliancesStatsModel.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ public class CompliancesStatsModel
44
{
55
public int OneWeekInTheFutureCount { get; set; }
66
public int TodayCount { get; set; }
7+
public int TodayCountEnvironmentInspectionTag { get; set; }
78
public int TotalCount { get; set; }
89
public int OneWeekCount { get; set; }
910
public int TwoWeeksCount { get; set; }

eFormAPI/Plugins/BackendConfiguration.Pn/BackendConfiguration.Pn/Services/BackendConfigurationCompliancesService/BackendConfigurationCompliancesService.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,9 +389,18 @@ public async Task<OperationResult> Delete(int id)
389389

390390
public async Task<OperationDataResult<CompliancesStatsModel>> Stats()
391391
{
392+
var envTag = await _itemsPlanningPnDbContext.PlanningTags.Where(x => x.Name == "Miljøtilsyn").FirstAsync();
392393
var complianceList = _backendConfigurationPnDbContext.Compliances;
393394
var oneWeekInTheFutureCount = await complianceList.CountAsync(x => x.Deadline >= DateTime.UtcNow && x.Deadline <= DateTime.UtcNow.AddDays(7));
394395
var todayCount = await complianceList.CountAsync(x => x.Deadline.Date <= DateTime.UtcNow.Date && x.WorkflowState != Constants.WorkflowStates.Removed);
396+
var todayComplianceCountEnvironmentInspectionTag = await complianceList.Where(x => x.Deadline.Date <= DateTime.UtcNow.Date && x.WorkflowState != Constants.WorkflowStates.Removed).ToListAsync();
397+
var todayCountEnvironmentInspectionTag = todayComplianceCountEnvironmentInspectionTag.Where(x =>
398+
{
399+
var planningTags = _itemsPlanningPnDbContext.PlanningsTags
400+
.Where(y => y.PlanningId == x.PlanningId && y.PlanningTagId == envTag.Id)
401+
.ToList();
402+
return planningTags.Any();
403+
}).Count();
395404
var oneWeekCount = await complianceList.CountAsync(x => x.Deadline <= DateTime.UtcNow && x.Deadline >= DateTime.UtcNow.AddDays(-7));
396405
var twoWeeksCount = await complianceList.CountAsync(x => x.Deadline <= DateTime.UtcNow.AddDays(-7) && x.Deadline >= DateTime.UtcNow.AddDays(-14));
397406
var oneMonthCount = await complianceList.CountAsync(x => x.Deadline <= DateTime.UtcNow.AddDays(-14) && x.Deadline >= DateTime.UtcNow.AddDays(-30));
@@ -413,7 +422,8 @@ public async Task<OperationDataResult<CompliancesStatsModel>> Stats()
413422
TwoMonthsCount = twoMonthsCount,
414423
ThreeMonthsCount = threeMonthsCount,
415424
SixMonthsCount = sixMonthsCount,
416-
MoreThanSixMonthsCount = moreThanSixMonthsCount
425+
MoreThanSixMonthsCount = moreThanSixMonthsCount,
426+
TodayCountEnvironmentInspectionTag = todayCountEnvironmentInspectionTag
417427
};
418428

419429
return new OperationDataResult<CompliancesStatsModel>(true, statsModel);

0 commit comments

Comments
 (0)