private async Task SaveToDb(string message) { var logItem = new VaultAccessLog() { DateTime = DateTime.Now, Event = message, EventType = this.EventType, VaultId = this.VaultId }; await _repository.CreateAsync(logItem); }
public void CreateAndSendAccessDeniedAlert(VaultAccessLog vaultAccessLog, string recipientAddress) { var senderAddress = ConfigurationManager.AppSettings["SenderMailAddress"]; var senderPassword = ConfigurationManager.AppSettings["SenderMailPassword"]; var emailSubject = ConfigurationManager.AppSettings["EmailAlertSubject"]; var alertTextTemplate = ConfigurationManager.AppSettings["EmailAlertTextTemplate"]; var alertText = FillPlaceholders(alertTextTemplate, vaultAccessLog); _sendEmailService.SendEmail(senderAddress, senderPassword, recipientAddress, emailSubject, alertText); }
public override void Execute(AddVaultAccessLogContext context) { using (var uow = UnitOfWorkFactory.Create()) { var user = uow.UserRepository.GetById(context.UserId); var vault = uow.VaultRepository.GetById(context.VaultId); var haveAccess = _vaultAccessService.IsUserHasAccess(user, vault); var vaultAccessLog = new VaultAccessLog(context.UserId, context.VaultId, !haveAccess); context.CreatedVaultAccessLog = vaultAccessLog; uow.VaultAccessLogRepository.Insert(vaultAccessLog); uow.Commit(); } }
private static string FillPlaceholders(string text, VaultAccessLog settings) { return(Placeholders.Aggregate(text, (t, p) => t.Replace($"%{p.Key}%", p.Value(settings)))); }