protected internal BaseScriptGenerator(IBackupRemoverViewModel model, IProfile profile) { _model = model; _profilesProvider = Create.New <IProfilesProvider>(); _serviceScriptGenerator = Create.WithCurrentProfile <IServiceScriptGenerator>(); _iisScriptGenerator = new IisScriptGenerator(); _filesScriptGenerator = new FilesScriptGenerator(); }
public static T WithParam <T>(IBackupRemoverViewModel model) where T : class { var profile = New <IProfilesProvider>().SelectedProfile; switch (model.EmbeddedActivity) { case EmbeddedActivity.Backup: return(new BackupScriptGenerator(model, profile) as T); case EmbeddedActivity.Remove: return(new RemoverScriptGenerator(model, profile) as T); case EmbeddedActivity.Restore: return(new RestoreScriptGenerator(model, profile) as T); } throw new NotImplementedException(); }
internal BackupScriptGenerator(IBackupRemoverViewModel model, IProfile profile) : base(model, profile) { Script = Path.Combine(Folders.Cache, $"Backup_{profile.Website}_{DateTime.Now:yyyy-MM-dd}.ps1"); executionScript = GenerateParameters(CommerceSitesParameters); GenerateFilesystemScript(); if (model.ProcessDatabases) { GenerateDatabaseScript(); } ShowFinalOutput("Backup"); SaveScriptToCacheFile(); }
internal RestoreScriptGenerator(IBackupRemoverViewModel model, IProfile profile) : base(model, profile) { Script = Path.Combine(Folders.Cache, $"Restore_{new DirectoryInfo(model.WebsiteFolder).Name}_{DateTime.Now:yyyy-MM-dd}.ps1"); executionScript = GenerateParameters(CommerceSitesParameters); if (model.WebsiteChecked) { GenerateFilesystemScript(); } if (model.ProcessDatabases) { GenerateDatabaseScript(); } GenerateServicesScript(); ShowFinalOutput("Restore"); SaveScriptToCacheFile(); }
public void AddBackupRemoveParameters(Dictionary <string, dynamic> parameters, IBackupRemoverViewModel model) { parameters.Add(Settings.Parameters.TargetFolder, model.DestinationFolder); parameters.Add(Settings.Parameters.XConnectFolder, model.XConnectFolder); parameters.Add(Settings.Parameters.IdentityServerFolder, model.IdentityFolder); parameters.Add(Settings.Parameters.HorizonFolder, model.HorizonFolder); parameters.Add(Settings.Parameters.PublishingServiceFolder, model.PublishingFolder); parameters.Add(Settings.Parameters.Databases, model.Databases); }
private async Task Run(IBackupRemoverViewModel model, Dictionary <string, object> parameters) { var iScript = Create.WithParam <IScript>(model); await PrepareAndStart(await LocalOrRemote(iScript.Script), parameters); }