public void SetUp() { _bus = new Bus(); _bus.PricingPeriods = new List <PricingPeriod>(); var pricingPeriod1 = new PricingPeriod(); pricingPeriod1.StartMonth = 1; pricingPeriod1.StartDay = 1; pricingPeriod1.EndMonth = 4; pricingPeriod1.EndDay = 30; pricingPeriod1.FridayToFridayRate = 800; pricingPeriod1.FridayToMondayRate = 450; pricingPeriod1.MondayToFridayRate = 500; pricingPeriod1.Bus = _bus; _bus.PricingPeriods.Add(pricingPeriod1); var pricingPeriod2 = new PricingPeriod(); pricingPeriod2.StartMonth = 5; pricingPeriod2.StartDay = 1; pricingPeriod2.EndMonth = 8; pricingPeriod2.EndDay = 31; pricingPeriod2.FridayToFridayRate = 1000; pricingPeriod2.FridayToMondayRate = 550; pricingPeriod2.MondayToFridayRate = 600; pricingPeriod2.Bus = _bus; _bus.PricingPeriods.Add(pricingPeriod2); var pricingPeriod3 = new PricingPeriod(); pricingPeriod3.StartMonth = 9; pricingPeriod3.StartDay = 1; pricingPeriod3.EndMonth = 12; pricingPeriod3.EndDay = 31; pricingPeriod3.FridayToFridayRate = 700; pricingPeriod3.FridayToMondayRate = 400; pricingPeriod3.MondayToFridayRate = 450; pricingPeriod3.Bus = _bus; _bus.PricingPeriods.Add(pricingPeriod3); }
/// <summary> /// the method can be called by execute "update-database" with the nuget-console /// </summary> /// <param name="context">the database context</param> protected override void Seed(BrokerContext context) { context.ServiceClass.SeedEnumValues <ServiceClass, ServiceClassEnum>(@enum => @enum); var uMgr = new UserManager <ApplicationUser, Guid>(new UserStore <ApplicationUser, ApplicationRole, Guid, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>(context)); var rMgr = new RoleManager <ApplicationRole, Guid>(new RoleStore <ApplicationRole, Guid, ApplicationUserRole>(context)); var adminRole = new ApplicationRole { Name = "Admin" }; context.Roles.AddOrUpdate(x => x.Name, adminRole); var userRole = new ApplicationRole { Name = "User" }; context.Roles.AddOrUpdate(x => x.Name, userRole); var adminUser = new ApplicationUser { UserName = "******", PasswordHash = uMgr.PasswordHasher.HashPassword("cloudBroker01") }; context.Users.AddOrUpdate(x => x.UserName, adminUser); var defaultUser = new ApplicationUser { UserName = "******", PasswordHash = uMgr.PasswordHasher.HashPassword("12345678") }; context.Users.AddOrUpdate(x => x.UserName, defaultUser); var createServicesRule = new Rule { RuleCode = "create-services", RuleTitle = "Services anlegen", RuleDesc = "Dürfen Nutzer der Rollengruppe neue Services in der Datenbank anlegen?" }; context.Rule.AddOrUpdate(x => x.RuleCode, createServicesRule); var editServicesRule = new Rule { RuleCode = "edit-services", RuleTitle = "Services bearbeiten", RuleDesc = "Dürfen Nutzer der Rollengruppe Services in der Datenbank verändern?" }; context.Rule.AddOrUpdate(x => x.RuleCode, editServicesRule); var deleteServicesRule = new Rule { RuleCode = "delete-services", RuleTitle = "Services löschen", RuleDesc = "Dürfen Nutzer der Rollengruppe Services aus der Datenbank löschen?" }; context.Rule.AddOrUpdate(x => x.RuleCode, deleteServicesRule); var editSecurityGuidelines = new Rule { RuleCode = "edit-security-guidelines", RuleTitle = "Rollenberechtigungen bearbeiten", RuleDesc = "Dürfen Nutzer der Rollengruppe Rollenberechtigungen bearbeiten?" }; context.Rule.AddOrUpdate(x => x.RuleCode, editSecurityGuidelines); var registerRoles = new Rule { RuleCode = "register-roles", RuleTitle = "Rollen anlegen", RuleDesc = "Dürfen Nutzer der Rollengruppe Rollen hinzufügen?" }; context.Rule.AddOrUpdate(x => x.RuleCode, registerRoles); var deleteRoles = new Rule { RuleCode = "delete-roles", RuleTitle = "Rollen löschen", RuleDesc = "Dürfen Nutzer der Rollengruppe Rollen entfernen?" }; context.Rule.AddOrUpdate(x => x.RuleCode, deleteRoles); var manageUseCases = new Rule { RuleCode = "manage-use-cases", RuleTitle = "Use-Cases verwalten", RuleDesc = "Dürfen Nutzer der Rollengruppe Use-Cases erstellen, ändern und löschen?" }; context.Rule.AddOrUpdate(x => x.RuleCode, deleteRoles); context.SaveChanges(); context.UseCase.Add(new UseCase { Creation = DateTime.Now, TitleDE = "Ich möchte mit meinen Kollegen gemeinsam Dokumente erstellen und bearbeiten", TitleEN = null, TitleES = null, InternalDescription = null, ServiceClassMapping = context.ServiceClass.Where(x => new List <int> { 4 }.Contains(x.Id)).ToList() }); context.UseCase.Add(new UseCase { Creation = DateTime.Now, TitleDE = "Ich möchte meinen Arbeitsplatz mit mehreren Endgeräten synchronisieren", TitleEN = null, TitleES = null, InternalDescription = null, ServiceClassMapping = context.ServiceClass.Where(x => new List <int> { 4 }.Contains(x.Id)).ToList() }); context.UseCase.Add(new UseCase { Creation = DateTime.Now, TitleDE = "Ich möchte Medien (Fotos, Videos etc,) über das Internet streamen", TitleEN = null, TitleES = null, InternalDescription = null, ServiceClassMapping = context.ServiceClass.Where(x => new List <int> { 3 }.Contains(x.Id)).ToList() }); context.UseCase.Add(new UseCase { Creation = DateTime.Now, TitleDE = "Ich möchte Dateien und Ordner mit anderen teilen", TitleEN = null, TitleES = null, InternalDescription = null, ServiceClassMapping = context.ServiceClass.Where(x => new List <int> { 4 }.Contains(x.Id)).ToList() }); context.UseCase.Add(new UseCase { Creation = DateTime.Now, TitleDE = "Ich möchte regelmäßige Backups von meinen Dateien erstellen", TitleEN = null, TitleES = null, InternalDescription = null, ServiceClassMapping = context.ServiceClass.Where(x => new List <int> { 4 }.Contains(x.Id)).ToList() }); context.UseCase.Add(new UseCase { Creation = DateTime.Now, TitleDE = "Ich möchte Dateien für eine Applikation bereitstellen", TitleEN = null, TitleES = null, InternalDescription = null, ServiceClassMapping = context.ServiceClass.Where(x => new List <int> { 0 }.Contains(x.Id)).ToList() }); context.UseCase.Add(new UseCase { Creation = DateTime.Now, TitleDE = "Ich benötige (peristenten) Speicher für einen Container (z.B. Docker)", TitleEN = null, TitleES = null, InternalDescription = null, ServiceClassMapping = context.ServiceClass.Where(x => new List <int> { 0 }.Contains(x.Id)).ToList() }); context.UseCase.Add(new UseCase { Creation = DateTime.Now, TitleDE = "Ich benötige Speicher für den Betrieb eigener Applikationen (z.B. ERP-System)", TitleEN = null, TitleES = null, InternalDescription = null, ServiceClassMapping = context.ServiceClass.Where(x => new List <int> { 0 }.Contains(x.Id)).ToList() }); context.UseCase.Add(new UseCase { Creation = DateTime.Now, TitleDE = "Ich benötige Laufwerke für virtuelle Maschinen", TitleEN = null, TitleES = null, InternalDescription = null, ServiceClassMapping = context.ServiceClass.Where(x => new List <int> { 0 }.Contains(x.Id)).ToList() }); context.UseCase.Add(new UseCase { Creation = DateTime.Now, TitleDE = "Ich benötige lokalen Speicher für Datenbanken", TitleEN = null, TitleES = null, InternalDescription = null, ServiceClassMapping = context.ServiceClass.Where(x => new List <int> { 0 }.Contains(x.Id)).ToList() }); context.UseCase.Add(new UseCase { Creation = DateTime.Now, TitleDE = "Ich benötige Speicher für die Bereitstellung von Bildern und Websiteinhalten", TitleEN = null, TitleES = null, InternalDescription = null, ServiceClassMapping = context.ServiceClass.Where(x => new List <int> { 3 }.Contains(x.Id)).ToList() }); uMgr.AddToRole <ApplicationUser, Guid>(adminUser.Id, adminRole.Name); uMgr.AddToRole <ApplicationUser, Guid>(defaultUser.Id, userRole.Name); adminRole.Rules.Add(createServicesRule); adminRole.Rules.Add(editServicesRule); adminRole.Rules.Add(deleteServicesRule); adminRole.Rules.Add(editSecurityGuidelines); adminRole.Rules.Add(registerRoles); adminRole.Rules.Add(deleteRoles); adminRole.Rules.Add(manageUseCases); var pricingPeriodD = new PricingPeriod { PricingPeriodName = "Täglich", PricingPeriodeCode = "daily" }; var pricingPeriodM = new PricingPeriod { PricingPeriodName = "Monatlich", PricingPeriodeCode = "monthly" }; var pricingPeriodA = new PricingPeriod { PricingPeriodName = "Jährlich", PricingPeriodeCode = "annually" }; context.PricingPeriod.Add(pricingPeriodD); context.PricingPeriod.Add(pricingPeriodM); context.PricingPeriod.Add(pricingPeriodA); var pricingModelUSR = new PricingModel { PricingModelName = "Nutzer-basiert" }; var pricingModelUSA = new PricingModel { PricingModelName = "Nutzungs-basiert" }; var pricingModelHYB = new PricingModel { PricingModelName = "Hybride Preiskalkulation" }; context.PricingModel.Add(pricingModelUSR); context.PricingModel.Add(pricingModelUSA); context.PricingModel.Add(pricingModelHYB); var deploymentPUB = new DeploymentInfo { DeploymentName = "Public" }; var deploymentPRV = new DeploymentInfo { DeploymentName = "Private" }; context.DeploymentInfo.Add(deploymentPUB); context.DeploymentInfo.Add(deploymentPRV); var cert1 = new Certificate { CertificateName = "ISO 27001" }; var cert3 = new Certificate { CertificateName = "SOC 1" }; var cert4 = new Certificate { CertificateName = "SOC 2" }; var cert5 = new Certificate { CertificateName = "SOC 3" }; var cert6 = new Certificate { CertificateName = "PCI DSS" }; var cert7 = new Certificate { CertificateName = "CSA STAR" }; var cert8 = new Certificate { CertificateName = "GDPR" }; var cert9 = new Certificate { CertificateName = "ISO 27017" }; var cert10 = new Certificate { CertificateName = "ISO 27018" }; context.Certificate.Add(cert1); context.Certificate.Add(cert3); context.Certificate.Add(cert4); context.Certificate.Add(cert5); context.Certificate.Add(cert6); context.Certificate.Add(cert7); context.Certificate.Add(cert8); context.Certificate.Add(cert9); context.Certificate.Add(cert10); var locationTypeC = new DataLocationType { TypeNameDE = "Kontinent", TypeNameEN = "Continent", TypeNameES = "Continente" }; var locationTypeR = new DataLocationType { TypeNameDE = "Region", TypeNameEN = "Region", TypeNameES = "Región" }; var locationTypeL = new DataLocationType { TypeNameDE = "Land", TypeNameEN = "Country", TypeNameES = "Pais" }; context.DataLocationType.Add(locationTypeC); context.DataLocationType.Add(locationTypeR); context.DataLocationType.Add(locationTypeL); context.SaveChanges(); var dataLocationEU = new DataLocation { DataLocationNameDE = "EU", DataLocationNameEN = "EU", DataLocationNameES = "EU", DataLocationTypeId = locationTypeC.Id }; var dataLocationGER = new DataLocation { DataLocationNameDE = "Deutschsprachiger Raum", DataLocationNameEN = "German speaking area", DataLocationNameES = "Área de habla alemana", DataLocationTypeId = locationTypeR.Id }; context.DataLocation.Add(dataLocationEU); context.DataLocation.Add(dataLocationGER); CloudServiceModel saaSModel = new CloudServiceModel { CloudServiceModelName = "Saas" }; CloudServiceModel iaaSModel = new CloudServiceModel { CloudServiceModelName = "IaaS" }; CloudServiceModel paaSModel = new CloudServiceModel { CloudServiceModelName = "PaaS" }; context.CloudServiceModel.AddOrUpdate(saaSModel); context.CloudServiceModel.AddOrUpdate(iaaSModel); context.CloudServiceModel.AddOrUpdate(paaSModel); Provider dropboxProvider = new Provider { ProviderName = "Dropbox", URL = "https://www.dropbox.com/" }; Provider stratoProvider = new Provider { ProviderName = "Strato", URL = "https://www.strato.de/cloud-speicher/" }; Provider googleProvider = new Provider { ProviderName = "Google Cloud", URL = "https://cloud.google.com/" }; Provider awsProvider = new Provider { ProviderName = "Amazon Web Services (AWS)", URL = "https://aws.amazon.com/de/" }; Provider azureProvider = new Provider { ProviderName = "Microsoft Azure", URL = "https://azure.microsoft.com/de-de/" }; Provider digitalOceanProvider = new Provider { ProviderName = "DigitalOcean", URL = "https://www.digitalocean.com/" }; Provider hetznerProvider = new Provider { ProviderName = "Hetzner", URL = "https://www.hetzner.de" }; Provider rackspaceProvider = new Provider { ProviderName = "Rackspace", URL = "https://www.rackspace.com/" }; Provider ibmProvider = new Provider { ProviderName = "IBM", URL = "https://www.ibm.com/cloud/" }; Provider ionosProvider = new Provider { ProviderName = "IONOS", URL = "https://www.ionos.de/enterprise-cloud/object-storage" }; Provider gridscaleProvider = new Provider { ProviderName = "Gridscale", URL = "https://gridscale.io/" }; context.Provider.AddOrUpdate(dropboxProvider); context.Provider.AddOrUpdate(stratoProvider); context.Provider.AddOrUpdate(googleProvider); context.Provider.AddOrUpdate(awsProvider); context.Provider.AddOrUpdate(azureProvider); context.Provider.AddOrUpdate(digitalOceanProvider); context.Provider.AddOrUpdate(hetznerProvider); context.Provider.AddOrUpdate(rackspaceProvider); context.Provider.AddOrUpdate(ibmProvider); context.Provider.AddOrUpdate(ionosProvider); context.Provider.AddOrUpdate(gridscaleProvider); Feature hasFileEncryption = new Feature { Color = "#1a78b8", DescriptionDE = "Dateiverschlüsselung", DescriptionEN = "File encryption", DescriptionES = "Cifrado de archivos", Icon = "vpn_key" }; Feature hasReplication = new Feature { Color = "#1c17bd", DescriptionDE = "Redundante Datenspeicherung", DescriptionEN = "File replication", DescriptionES = "Replicación de archivos", Icon = "file_copy" }; Feature hasVersioning = new Feature { Color = "#a74ddb", DescriptionDE = "Dateiversionierung", DescriptionEN = "File versioning", DescriptionES = "Versionado de archivos", Icon = "restore" }; Feature hasPermissions = new Feature { Color = "#f00e7b", DescriptionDE = "Nutzerberechtigungssystem", DescriptionEN = "File permissions", DescriptionES = "Permisos de archivos", Icon = "security" }; Feature hasAutomatedSynchronization = new Feature { Color = "#3c9e49", DescriptionDE = "Automatische Synchronisation", DescriptionEN = "Automated synchronization", DescriptionES = "sincronización automatizada", Icon = "cached" }; Feature hasLocking = new Feature { Color = "#e81046", DescriptionDE = "Datei Sperren", DescriptionEN = "File locking", DescriptionES = "bloqueo de archivos", Icon = "block" }; context.Feature.Add(hasFileEncryption); context.Feature.Add(hasReplication); context.Feature.Add(hasVersioning); context.Feature.Add(hasPermissions); context.Feature.Add(hasAutomatedSynchronization); context.Feature.Add(hasLocking); context.SaveChanges(); context.OnlineDriveStorageService.AddOrUpdate( x => x.ServiceName, new OnlineDriveStorageService { ServiceName = "Dropbox Basic", ServiceDescriptionDE = "Dropbox bietet Speicherplatz für Dateien auf all Ihren verknüpften Geräten", ServiceTitleDE = "Kostenlose Version von Dropbox", CloudServiceModelId = saaSModel.Id, CloudServiceModel = saaSModel, ProviderId = dropboxProvider.Id, Provider = dropboxProvider, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { } } ); context.OnlineDriveStorageService.AddOrUpdate( x => x.ServiceName, new OnlineDriveStorageService { ServiceName = "OneDrive", ServiceDescriptionDE = "Speichern Sie Ihre Dateien und Fotos auf OneDrive, um sie von jedem Gerät und überall aus abrufen zu können", CloudServiceModelId = saaSModel.Id, CloudServiceModel = saaSModel, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { } } ); context.OnlineDriveStorageService.AddOrUpdate( x => x.ServiceName, new OnlineDriveStorageService { ServiceName = "HiDrive", ServiceDescriptionDE = "Der Cloud-Speicher für Ihre Fotos, Videos & Dateien", ServiceTitleDE = "HiDrive", ServiceAvailability = "99,99", CloudServiceModelId = saaSModel.Id, CloudServiceModel = saaSModel, ProviderId = stratoProvider.Id, Provider = stratoProvider, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { } } ); context.ObjectStorageService.AddOrUpdate( x => x.ServiceName, new ObjectStorageService { ServiceName = "Amazon S3", ServiceDescriptionDE = "Filehosting-Dienst, der beliebig große Datenmengen speichern kann und nach Verbrauch abgerechnet wird", ServiceTitleDE = "Amazon Simple Storage Service", ServiceAvailability = "99,99", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasFileEncryption, hasVersioning, hasPermissions, hasReplication, hasLocking } } ); context.ObjectStorageService.AddOrUpdate( x => x.ServiceName, new ObjectStorageService { ServiceName = "Google Cloud Storage", ServiceDescriptionDE = "Einheitlicher Objektspeicher für Entwickler und Unternehmen", ServiceTitleDE = "Google Cloud Storage", ServiceAvailability = "99,99", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, ProviderId = googleProvider.Id, Provider = googleProvider, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasFileEncryption, hasVersioning, hasPermissions } } ); context.BlockStorageService.AddOrUpdate( x => x.ServiceName, new BlockStorageService { ServiceName = "Azure Disk Storage", ServiceDescriptionDE = "Persistente und leistungsstarke Datenträger für virtuelle Azure-Computer", ServiceAvailability = "99,95", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { } } ); context.ObjectStorageService.AddOrUpdate( x => x.ServiceName, new ObjectStorageService { ServiceName = "S3 Object Storage", ServiceAvailability = "99,95", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasFileEncryption, hasPermissions } } ); context.BlockStorageService.AddOrUpdate( x => x.ServiceName, new BlockStorageService { ServiceName = "Amazon Elastic Block Store", ServiceDescriptionDE = "Amazon Elastic Block Store (Amazon EBS) bietet Volumes für die Speicherung auf Blockebene, die in Verbindung mit EC2-Instances verwendet werden. EBS-Volumes verhalten sich wie unformatierte Blockgeräte", ServiceTitleDE = "Amazon EBS", ServiceAvailability = "99,99", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, ProviderId = awsProvider.Id, Provider = awsProvider, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasFileEncryption, hasReplication } } ); context.BlockStorageService.AddOrUpdate( x => x.ServiceName, new BlockStorageService { ServiceName = "Blockspeicher für VM-Instanzen", ServiceDescriptionDE = "Zuverlässiger, leistungsstarker Blockspeicher für VM-Instanzen", ServiceTitleDE = "Persistent Disk", ServiceAvailability = "99,99", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, ProviderId = googleProvider.Id, Provider = googleProvider, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasFileEncryption, hasReplication } } ); context.BlockStorageService.AddOrUpdate( x => x.ServiceName, new BlockStorageService { ServiceName = "Azure Disk Storage", ServiceDescriptionDE = "Persistente und leistungsstarke Datenträger für virtuelle Azure-Compute", ServiceTitleDE = "Azure Disk Storage", ServiceAvailability = "99,99", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, ProviderId = azureProvider.Id, Provider = azureProvider, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasFileEncryption, hasReplication } } ); context.ObjectStorageService.AddOrUpdate( x => x.ServiceName, new ObjectStorageService { ServiceName = "Blob Storage", ServiceDescriptionDE = "Hochgradig skalierbarer Objektspeicher für unstrukturierte Daten", ServiceTitleDE = "Blob Storage", ServiceAvailability = "99,99", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasPermissions, hasReplication } } ); context.ObjectStorageService.AddOrUpdate( x => x.ServiceName, new ObjectStorageService { ServiceName = "Spaces", ServiceDescriptionDE = "Spaces ergänzt den lokalen und Netzwerkspeicher, um Ihrem Unternehmen die Skalierung zu erleichtern", ServiceTitleDE = "Spaces", ServiceAvailability = "99,95", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, ProviderId = digitalOceanProvider.Id, Provider = digitalOceanProvider, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasPermissions, hasReplication } } ); context.BlockStorageService.AddOrUpdate( x => x.ServiceName, new BlockStorageService { ServiceName = "Volumes Block Storage", ServiceDescriptionDE = "Hochverfügbaren und skalierbaren SSD-basierten Blockspeicher", ServiceTitleDE = "Volumes Block Storage", ServiceAvailability = "99,95", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, ProviderId = digitalOceanProvider.Id, Provider = digitalOceanProvider, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasReplication } } ); context.BlockStorageService.AddOrUpdate( x => x.ServiceName, new BlockStorageService { ServiceName = "Volumes", ServiceDescriptionDE = "Volumes bieten hochverfügbaren und zuverlässigen SSD-Speicherplatz für Ihre Cloud Server", ServiceTitleDE = "Volumes", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, ProviderId = hetznerProvider.Id, Provider = hetznerProvider, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasReplication } } ); context.OnlineDriveStorageService.AddOrUpdate( x => x.ServiceName, new OnlineDriveStorageService { ServiceName = "Storage Share", ServiceDescriptionDE = "Daten speichern und teilen", ServiceTitleDE = "Storage Share", ServiceTitleEN = "Storage Share", ServiceTitleES = "Storage Share", CloudServiceModelId = saaSModel.Id, CloudServiceModel = saaSModel, ProviderId = hetznerProvider.Id, Provider = hetznerProvider, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { } } ); context.ObjectStorageService.AddOrUpdate( x => x.ServiceName, new ObjectStorageService { ServiceName = "Cloud Files", ServiceDescriptionDE = "Cloud Files bietet Online-Objektspeicher für Dateien und Medien und stellt sie weltweit mit rasender Geschwindigkeit über ein weltweites Content-Delivery-Netzwerk (CDN) bereit", ServiceAvailability = "99,99", ServiceTitleDE = "Cloud Files", ServiceTitleEN = "Cloud Files", ServiceTitleES = "Cloud Files", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasPermissions, hasReplication } } ); context.BlockStorageService.AddOrUpdate( x => x.ServiceName, new BlockStorageService { ServiceName = "Cloud Block Storage", ServiceDescriptionDE = "Cloud Block Storage bietet zuverlässigen, leistungsstarken On-Demand-Speicher für Anwendungen, die auf Cloud-Servern gehostet werden", ServiceTitleDE = "Cloud Block Storage", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, ProviderId = rackspaceProvider.Id, Provider = rackspaceProvider, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasFileEncryption, hasReplication } } ); context.ObjectStorageService.AddOrUpdate( x => x.ServiceName, new ObjectStorageService { ServiceName = "Cloud Object Storage", ServiceDescriptionDE = "Stelle deine Daten von überall aus wieder her oder mache Backups einfach über unseren redundanten Objekt Storage mit S3-kompatibler Schnittstelle", ServiceTitleDE = "Cloud Object Storage", ServiceAvailability = "99,95", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasPermissions } } ); context.ObjectStorageService.AddOrUpdate( x => x.ServiceName, new ObjectStorageService { ServiceName = "IBM Cloud Object Storage", ServiceDescriptionDE = "IBM Cloud Object Storage wurde entwickelt, um ein exponentielles Datenwachstum und Cloud-native Arbeitslasten zu unterstützen", ServiceTitleDE = "IBM Cloud Object Storage", ServiceAvailability = "99,99", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, ProviderId = ibmProvider.Id, Provider = ibmProvider, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasPermissions, hasReplication } } ); context.BlockStorageService.AddOrUpdate( x => x.ServiceName, new BlockStorageService { ServiceName = "IBM Block Storage", ServiceDescriptionDE = "Flash-basierter, leistungsstarker lokaler Plattenspeicher mit SAN-Persistenz und -Beständigkeit, anpassbaren E/A-Operationen pro Sekunde und kalkulierbaren Kosten", ServiceTitleDE = "IBM Block Storage", ServiceAvailability = "99,99", CloudServiceModelId = iaaSModel.Id, CloudServiceModel = iaaSModel, ProviderId = ibmProvider.Id, Provider = ibmProvider, Creation = DateTime.Now, LastModified = DateTime.Now, Features = new List <Feature> { hasFileEncryption, hasReplication } } ); context.SaveChanges(); }