@@ -34,6 +34,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3434using Microting . EformAngularFrontendBase . Infrastructure . Data . Factories ;
3535using Microting . EformBackendConfigurationBase . Infrastructure . Data . Entities ;
3636using Microting . EformBackendConfigurationBase . Infrastructure . Enum ;
37+ using Microting . ItemsPlanningBase . Infrastructure . Data . Entities ;
3738using QuestPDF . Infrastructure ;
3839using 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
0 commit comments