private async Task <int> ReEncryptSharedRepositoryPasswordValues(string oldKey = null) { ShowStatusMessage("Re-Encrypting Shared Repository Password variables Values with new Key..."); return(await Task.Run(() => { int varReencryptedCount = 0; //For Shared Variables List <GingerCore.Variables.VariableBase> sharedRepoVarsList = WorkSpace.Instance.SolutionRepository.GetAllRepositoryItems <GingerCore.Variables.VariableBase>().Where(f => f is GingerCore.Variables.VariablePasswordString).ToList(); foreach (var sharedVar in sharedRepoVarsList) { try { ((GingerCore.Variables.VariablePasswordString)sharedVar).Password = EncryptionHandler.ReEncryptString(((GingerCore.Variables.VariablePasswordString)sharedVar).Password, oldKey); WorkSpace.Instance.SolutionRepository.SaveRepositoryItem(sharedVar); varReencryptedCount++; } catch (Exception ex) { Reporter.ToLog(eLogLevel.ERROR, string.Format("ReEncryptVariable- Failed to Re-encrypt shared password variable of {0}.", sharedVar.Name), ex); } } //For Shared Activites List <Activity> sharedActivityList = WorkSpace.Instance.SolutionRepository.GetAllRepositoryItems <Activity>().ToList(); foreach (var sharedAct in sharedActivityList) { try { List <GingerCore.Variables.VariableBase> variables = sharedAct.Variables.Where(f => f is GingerCore.Variables.VariablePasswordString).ToList(); variables.ForEach(v => { try { ((GingerCore.Variables.VariablePasswordString)v).Password = EncryptionHandler.ReEncryptString(((GingerCore.Variables.VariablePasswordString)v).Password, oldKey); varReencryptedCount++; } catch (Exception ex) { Reporter.ToLog(eLogLevel.ERROR, string.Format("ReEncryptVariable- Failed to Re-encrypt password variable of shared activity {0} for {1}", sharedAct.ActivityName, v.Name), ex); } }); if (variables.Any()) { WorkSpace.Instance.SolutionRepository.SaveRepositoryItem(sharedAct); } } catch (Exception ex) { Reporter.ToLog(eLogLevel.ERROR, string.Format("ReEncryptVariable- Failed to update shared activity {0}.", sharedAct.ActivityName), ex); } } return varReencryptedCount; })); }
private async Task <int> ReEncryptGlobalVariables(string oldKey = null) { ShowStatusMessage("Re-Encrypting Global Password variables Values with new Key..."); return(await Task.Run(() => { // For Global Variables bool isSaveRequired = false; int varReencryptedCount = 0; foreach (GingerCore.Variables.VariableBase v in WorkSpace.Instance.Solution.Variables.Where(f => f is GingerCore.Variables.VariablePasswordString)) { try { ((GingerCore.Variables.VariablePasswordString)v).Password = EncryptionHandler.ReEncryptString(((GingerCore.Variables.VariablePasswordString)v).Password, oldKey); isSaveRequired = true; varReencryptedCount++; } catch (Exception ex) { Reporter.ToLog(eLogLevel.ERROR, string.Format("ReEncryptVariable- Failed to Re-encrypt password Global variable {1}", v.Name), ex); } } if (isSaveRequired) { WorkSpace.Instance.Solution.SolutionOperations.SaveSolution(false); } return varReencryptedCount; })); }
private async Task <int> ReEncryptEnvironmentPasswordValues(string oldKey = null) { ShowStatusMessage("Re-Encrypting Environment paramters and DB Password Values with new Key..."); return(await Task.Run(() => { bool isSaveRequired = false; int varReencryptedCount = 0; //For project environment variable List <ProjEnvironment> projEnvironments = WorkSpace.Instance.SolutionRepository.GetAllRepositoryItems <ProjEnvironment>().ToList(); projEnvironments.ForEach(pe => { try { isSaveRequired = false; foreach (EnvApplication ea in pe.Applications) { foreach (GeneralParam gp in ea.GeneralParams.Where(f => f.Encrypt)) { gp.Value = EncryptionHandler.ReEncryptString(gp.Value, oldKey); isSaveRequired = true; varReencryptedCount++; } foreach (Database db in ea.Dbs) { if (!string.IsNullOrEmpty(db.Pass)) { //if Pass is stored in the form of variable, encryption not required at this stage if (!db.Pass.Contains("{Var Name") && !db.Pass.Contains("{EnvParam")) { string encryptedPassWord = EncryptionHandler.ReEncryptString(db.Pass, oldKey); if (string.IsNullOrEmpty(encryptedPassWord)) { encryptedPassWord = EncryptionHandler.EncryptwithKey(db.Pass); } db.Pass = encryptedPassWord; } isSaveRequired = true; varReencryptedCount++; } } } if (isSaveRequired) { WorkSpace.Instance.SolutionRepository.SaveRepositoryItem(pe); } } catch (Exception ex) { Reporter.ToLog(eLogLevel.ERROR, "ReEncryptVariable- Failed to Re-encrypt password ProjEnvironment variable for " + pe.Name, ex); } }); return varReencryptedCount; })); }
private async Task <int> ReEncryptRunsetOperationsPassowrdValues(string oldKey = null) { ShowStatusMessage("Re-Encrypting Runset Operations SMTP Password Values with new Key..."); return(await Task.Run(() => { bool isSaveRequired = false; int varReencryptedCount = 0; //Email Passwords var runSetConfigs = WorkSpace.Instance.SolutionRepository.GetAllRepositoryItems <RunSetConfig>(); foreach (var rsc in runSetConfigs) { try { isSaveRequired = false; foreach (var ra in rsc.RunSetActions) { if (ra is RunSetActionHTMLReportSendEmail && ((RunSetActionHTMLReportSendEmail)ra).Email != null && !string.IsNullOrEmpty(((RunSetActionHTMLReportSendEmail)ra).Email.SMTPPass)) { ((RunSetActionHTMLReportSendEmail)ra).Email.SMTPPass = EncryptionHandler.ReEncryptString(((RunSetActionHTMLReportSendEmail)ra).Email.SMTPPass, oldKey); isSaveRequired = true; varReencryptedCount++; } else if (ra is RunSetActionSendFreeEmail && ((RunSetActionSendFreeEmail)ra).Email != null && !string.IsNullOrEmpty(((RunSetActionSendFreeEmail)ra).Email.SMTPPass)) { ((RunSetActionSendFreeEmail)ra).Email.SMTPPass = EncryptionHandler.ReEncryptString(((RunSetActionSendFreeEmail)ra).Email.SMTPPass, oldKey); isSaveRequired = true; varReencryptedCount++; } else if (ra is RunSetActionSendSMS && ((RunSetActionSendSMS)ra).SMSEmail != null && !string.IsNullOrEmpty(((RunSetActionSendSMS)ra).SMSEmail.SMTPPass)) { ((RunSetActionSendSMS)ra).SMSEmail.SMTPPass = EncryptionHandler.ReEncryptString(((RunSetActionSendSMS)ra).SMSEmail.SMTPPass, oldKey); isSaveRequired = true; varReencryptedCount++; } } if (isSaveRequired) { WorkSpace.Instance.SolutionRepository.SaveRepositoryItem(rsc); } } catch (Exception ex) { Reporter.ToLog(eLogLevel.ERROR, "Encrypting Email SMTP password of " + rsc.Name, ex); } } return varReencryptedCount; })); }
private async Task <int> ReEncryptBFAndACtivityVariable(string oldKey = null) { ShowStatusMessage("Re-Encrypting Business flow and activity Password variables Values with new Key..."); return(await Task.Run(() => { int varReencryptedCount = 0; List <BusinessFlow> Bfs = WorkSpace.Instance.SolutionRepository.GetAllRepositoryItems <BusinessFlow>().ToList(); // For BF and Activity Parallel.ForEach(Bfs, Bf => { try { // Get all variables from BF List <GingerCore.Variables.VariableBase> variables = Bf.GetBFandActivitiesVariabeles(false).Where(f => f is GingerCore.Variables.VariablePasswordString).ToList(); variables.ForEach(v => { try { ((GingerCore.Variables.VariablePasswordString)v).Password = EncryptionHandler.ReEncryptString(((GingerCore.Variables.VariablePasswordString)v).Password, oldKey); varReencryptedCount++; } catch (Exception ex) { Reporter.ToLog(eLogLevel.ERROR, string.Format("ReEncryptVariable- Failed to Re-encrypt password variable of {0} for {1}", Bf.Name, v.Name), ex); } }); if (variables.Any()) { WorkSpace.Instance.SolutionRepository.SaveRepositoryItem(Bf); } } catch (Exception ex) { Reporter.ToLog(eLogLevel.ERROR, string.Format("ReEncryptVariable- Failed to Re encrypt password variable of {0}.", Bf.Name), ex); } }); return varReencryptedCount; })); }