internal override bool PerformInsertAction(Smartcard scard, X509Certificate2 targetCert, string pin, IList <Config.Parameter> parameters) { this.logger.InfoFormat("Bitlocker unlocking for certifiate {0}, thumbprint {1}", targetCert.Subject, targetCert.Thumbprint); var targetDrive = parameters.Where(x => x.Name == "target").First().Value.ToUpper(); using (var vol = this.GetTargetVolume(targetDrive)) { if (vol == null) { return(false); } var driveStatus = (uint)vol["ProtectionStatus"]; if (driveStatus == 2) { this.logger.DebugFormat("Unlocking drive {0}", targetDrive); var result = vol.InvokeMethod( "UnlockWithCertificateThumbprint", new object[] { targetCert.Thumbprint, pin }); } } return(true); }
internal override bool PerformRemoveAction(Smartcard scard, IList <Config.Parameter> parameters) { this.logger.Info("Locking drive"); var targetDrive = parameters.Where(x => x.Name == "target").First().Value.ToUpper(); using (var vol = this.GetTargetVolume(targetDrive)) { vol.InvokeMethod("Lock", null); } return(true); }
public void MapSmartCardDBModel(SmartcardModel x, Smartcard y) { y.Cellphone = x.CellPhone; y.EmailAddress = x.EMail; y.Gender = x.Gender; y.LastUpdatedBy = "System"; y.LastUpdatedDate = DateTime.Now; y.Name = x.Name; y.SmartcardNumber = x.SmartcardNumber; y.Status = x.Status; y.Surname = x.Surname; y.CardType = x.CardType; y.AccountNumber = x.AccountNumber; y.Location = x.Location; }
public string InsertOrUpdateSmartcard(SmartcardModel smartcard) { var status = ""; try { unitOfWork.CreateTransaction(); if (smartcard.ID <= 0) { if (smartCardRepo.GetByCardNumber(smartcard.SmartcardNumber) == null) { Smartcard entity = MapSmartCardDBModel(smartcard); smartCardRepo.Insert(entity); unitOfWork.Save(); var guardians = MapGuardianDBModel(smartcard.Guardians, entity.ID); guardianRepo.BulkInsert(guardians); unitOfWork.Save(); } else { status = "Smartcard number is already regestired.!!"; } } else { var smartCardRec = smartCardRepo.GetById(smartcard.ID); MapSmartCardDBModel(smartcard, smartCardRec); smartCardRepo.Update(smartCardRec); guardianRepo.DeleteGuardiansForSmartCard(smartcard.ID); var guardians = MapGuardianDBModel(smartcard.Guardians, smartcard.ID); guardianRepo.BulkInsert(guardians); unitOfWork.Save(); } unitOfWork.Commit(); } catch (Exception) { unitOfWork.Rollback(); throw; } return(status); }
public SmartcardModel MapSmartCardModel(Smartcard x) { return(new SmartcardModel() { CellPhone = x.Cellphone, EMail = x.EmailAddress, Gender = x.Gender, ID = x.ID, LastUpdatedBy = x.LastUpdatedBy, LastUpdatedDate = x.LastUpdatedDate ?? DateTime.Now, Name = x.Name, SmartcardNumber = x.SmartcardNumber, Status = x.Status ?? true, Surname = x.Surname, CardType = x.CardType, AccountNumber = x.AccountNumber, Location = x.Location }); }
/// <summary> /// Remove action method signature /// </summary> /// <param name="scard">Smartcard object where the remove is being performed</param> /// <param name="parameters">Parameters for the action</param> /// <returns>True on action success, false otherwise</returns> internal virtual bool PerformRemoveAction(Smartcard scard, IList <Config.Parameter> parameters) { return(true); }
/// <summary> /// Insert action method signature /// </summary> /// <param name="scard">Smartcard object where the insert is being performed</param> /// <param name="targetCert">Certificate that started this action</param> /// <param name="pin">PIN number for smartcard</param> /// <param name="parameters">Parameters for the action</param> /// <returns>True on action success, false otherwise</returns> internal virtual bool PerformInsertAction(Smartcard scard, X509Certificate2 targetCert, string pin, IList <Config.Parameter> parameters) { return(true); }