public void Execute() { if (IsActiveAccount() == false) { throw new Exceptions.AccountNotActiveException("To generate a new open vpn cert you first activate your account by making a payment."); } ActionLog.Log_BackgroundThread(string.Format("OpenVpn Generate Command Start - {0}", vpnData.Description), this.userData.Id); ulong num = 0; using (var db = InitializeSettings.DbFactory) { db.Open(); using (var txn = db.BeginTransaction()) { num = Counters.GetSetVpnNum(txn, db); txn.Commit(); } } string randomString = Guid.NewGuid().ToString().Split('-')[0]; string certName = string.Format("{0}{1}-{2}", num, randomString, userData.Email); // First things first, revoke any old certificates on the server var revoke = new CertsOpenVpnRevokeCommand(userData.Id, sshClientRevokeServer); revoke.Execute(); // now generate the new certificate CreateUserCerts(certName); ActionLog.Log_BackgroundThread("OpenVpn Generate Command Finished", this.userData.Id); }
public void Execute() { string certName = ""; LibPoco.VpnServers vpnData = null; using (var db = Setup.DbFactory) { db.Open(); var certData = db.Query <LibPoco.UserOpenVpnCerts>("SELECT * FROM UserOpenVpnCerts WHERE UserId=@UserId", new { UserId = userData.Id }); if (certData.Count() == 1) { certName = certData.First().CertName; vpnData = db.Get <LibPoco.VpnServers>(certData.First().VpnServersId); } else if (certData.Count() >= 1) { throw new InvalidDataException("Invalid data in the UserOpenVpnCerts for user " + userData.Id); } } if (certName == "") { return; } ActionLog.Log_BackgroundThread("OpenVpn Revoke Start", this.userData.Id); RevokeUserCert(vpnData.Address, certName); ActionLog.Log_BackgroundThread("OpenVpn Revoke Finished", this.userData.Id); }