private void SeedDataForPlant(PreservationContext dbContext, IServiceProvider scopeServiceProvider, string plant) { var knownData = new KnownTestData(plant); SeededData.Add(plant, knownData); dbContext.Seed(scopeServiceProvider, knownData); }
public static void Seed(this PreservationContext dbContext, IServiceProvider serviceProvider, KnownTestData knownTestData) { var userProvider = serviceProvider.GetRequiredService <CurrentUserProvider>(); var plantProvider = serviceProvider.GetRequiredService <PlantProvider>(); userProvider.SetCurrentUserOid(new Guid(_seederOid)); plantProvider.SetPlant(knownTestData.Plant); /* * Add the initial seeder user. Don't do this through the UnitOfWork as this expects/requires the current user to exist in the database. * This is the first user that is added to the database and will not get "Created" and "CreatedBy" data. */ var seeder = EnsureCurrentUserIsSeeded(dbContext, userProvider); var plant = plantProvider.Plant; var supplierModeA = SeedMode(dbContext, plant, KnownTestData.SupModeA, true); knownTestData.SupModeAId = supplierModeA.Id; knownTestData.SupModeBId = SeedMode(dbContext, plant, KnownTestData.SupModeB, true).Id; var otherMode = SeedMode(dbContext, plant, KnownTestData.OtherMode, false); knownTestData.OtherModeId = otherMode.Id; var responsible = SeedResponsible(dbContext, plant); var reqTypeA = SeedReqType(dbContext, plant, KnownTestData.ReqTypeA); var reqDefANoField = SeedReqDef(dbContext, reqTypeA, KnownTestData.ReqDefInReqTypeANoField); var reqDefAWithAttachmentField = SeedReqDef(dbContext, reqTypeA, KnownTestData.ReqDefInReqTypeAWithAttachmentField); SeedAttachmentField(dbContext, reqDefAWithAttachmentField); var reqDefAWithInfoField = SeedReqDef(dbContext, reqTypeA, KnownTestData.ReqDefInReqTypeAWithInfoField); SeedInfoField(dbContext, reqDefAWithInfoField); var reqDefAWithCbField = SeedReqDef(dbContext, reqTypeA, KnownTestData.ReqDefInReqTypeAWithCbField); SeedCbField(dbContext, reqDefAWithCbField); var reqTypeB = SeedReqType(dbContext, plant, KnownTestData.ReqTypeB); SeedReqDef(dbContext, reqTypeB, KnownTestData.ReqDefInReqTypeB); var journeyWithTags = SeedJourney(dbContext, plant, KnownTestData.TwoStepJourneyWithTags); var stepInJourneyWithTags = SeedStep(dbContext, journeyWithTags, KnownTestData.StepAInJourneyWithTags, supplierModeA, responsible); SeedStep(dbContext, journeyWithTags, KnownTestData.StepBInJourneyWithTags, otherMode, responsible); var journeyWithoutTags = SeedJourney(dbContext, plant, KnownTestData.JourneyNotInUse); SeedStep(dbContext, journeyWithoutTags, KnownTestData.StepInJourneyNotInUse, supplierModeA, responsible); var project = SeedProject(dbContext, plant); var standardTagReadyForBulkPreserveNotStarted = SeedStandardTag(dbContext, project, stepInJourneyWithTags, reqDefANoField); knownTestData.TagId_ForStandardTagReadyForBulkPreserve_NotStarted = standardTagReadyForBulkPreserveNotStarted.Id; var standardTagWithAttachmentRequirementStarted = SeedStandardTag(dbContext, project, stepInJourneyWithTags, reqDefAWithAttachmentField); standardTagWithAttachmentRequirementStarted.StartPreservation(); dbContext.SaveChangesAsync().Wait(); knownTestData.TagId_ForStandardTagWithAttachmentRequirement_Started = standardTagWithAttachmentRequirementStarted.Id; var standardTagWithInfoRequirementStarted = SeedStandardTag(dbContext, project, stepInJourneyWithTags, reqDefAWithInfoField); standardTagWithInfoRequirementStarted.StartPreservation(); dbContext.SaveChangesAsync().Wait(); knownTestData.TagId_ForStandardTagWithInfoRequirement_Started = standardTagWithInfoRequirementStarted.Id; var standardTagWithCbRequirementStarted = SeedStandardTag(dbContext, project, stepInJourneyWithTags, reqDefAWithCbField); standardTagWithCbRequirementStarted.StartPreservation(); dbContext.SaveChangesAsync().Wait(); knownTestData.TagId_ForStandardTagWithCbRequirement_Started = standardTagWithCbRequirementStarted.Id; var standardTagWithAttachmentsAndActionsStarted = SeedStandardTag(dbContext, project, stepInJourneyWithTags, reqDefANoField); standardTagWithAttachmentsAndActionsStarted.StartPreservation(); knownTestData.TagId_ForStandardTagWithAttachmentsAndActionAttachments_Started = standardTagWithAttachmentsAndActionsStarted.Id; SeedTagAttachment(dbContext, standardTagWithAttachmentsAndActionsStarted); SeedTagAttachment(dbContext, standardTagWithAttachmentsAndActionsStarted); var standardTagAction = SeedAction(dbContext, standardTagWithAttachmentsAndActionsStarted); SeedActionAttachment(dbContext, standardTagAction); SeedActionAttachment(dbContext, standardTagAction); var closedStandardTagAction = SeedAction(dbContext, standardTagWithAttachmentsAndActionsStarted); closedStandardTagAction.Close(new DateTime(1971, 1, 1, 0, 0, 0, DateTimeKind.Utc), seeder); dbContext.SaveChangesAsync().Wait(); var siteAreaTag = SeedSiteTag(dbContext, project, stepInJourneyWithTags, reqDefANoField); knownTestData.TagId_ForSiteAreaTagReadyForBulkPreserve_NotStarted = siteAreaTag.Id; var siteAreaTagWithAttachmentsAndActionAttachments = SeedSiteTag(dbContext, project, stepInJourneyWithTags, reqDefANoField); knownTestData.TagId_ForSiteAreaTagWithAttachmentsAndActionAttachments_NotStarted = siteAreaTagWithAttachmentsAndActionAttachments.Id; SeedTagAttachment(dbContext, siteAreaTagWithAttachmentsAndActionAttachments); SeedTagAttachment(dbContext, siteAreaTagWithAttachmentsAndActionAttachments); var closedAreaTagAction = SeedAction(dbContext, siteAreaTagWithAttachmentsAndActionAttachments); closedAreaTagAction.Close(new DateTime(1971, 1, 1, 0, 0, 0, DateTimeKind.Utc), seeder); dbContext.SaveChangesAsync().Wait(); SeedActionAttachment(dbContext, closedAreaTagAction); SeedActionAttachment(dbContext, closedAreaTagAction); knownTestData.ActionId_ForActionWithAttachments_Closed = closedAreaTagAction.Id; }