public EmailAuditEventSettingsDomainModelHandler(IEmailAuditEventSettingsRepository emailAuditEventSettingsRepository,
                                                  ISqlServerDbContext dbContext)
 {
     _emailAuditEventSettingsRepository =
         emailAuditEventSettingsRepository ?? throw new ArgumentNullException(nameof(emailAuditEventSettingsRepository));
     _dbContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext));
 }
Exemple #2
0
 public EmailConfiguration(IEmailAuditEventSettingsRepository emailAuditEventSettingsRepository,
                           string environmentId, string frontendUrl, IRepositoryFactory repositoryFactory, IEmailConnection emailConnection)
 {
     _environmentId = environmentId;
     _frontendUrl   = frontendUrl;
     _emailAuditEventSettingsRepository = emailAuditEventSettingsRepository;
     _repositoryFactory = repositoryFactory;
     _emailConnection   = emailConnection;
 }
Exemple #3
0
 public EmailConfiguration(IAuditEventTypeRepository auditEventTypeRepository, IAuditEventValueTypeRepository auditEventValueTypeRepository, IEmailAuditEventSettingsRepository emailAuditEventSettingsRepository)
 {
     _auditEventTypeRepository          = auditEventTypeRepository;
     _auditEventValueTypeRepository     = auditEventValueTypeRepository;
     _emailAuditEventSettingsRepository = emailAuditEventSettingsRepository;
 }
Exemple #4
0
 public IAuditEventRepository GetEmailAuditEventRepository(IEmailConnection emailConnection, List <AuditEventValueConverter> valueConverters, List <IAuditEventEmailCreator> emailCreators, IEmailAuditEventSettingsRepository emailAuditEventSettingsRepository)
 {
     return(new EmailAuditEventRepository(emailConnection, emailCreators));
 }
Exemple #5
0
        /// <summary>
        /// Configures an audit event
        /// </summary>
        /// <param name="eventTypeId"></param>
        /// <param name="auditEventSettingsRepositories"></param>
        private void ConfigureAuditEvent(int eventTypeId, Dictionary <Type, object> auditEventSettingsRepositories,
                                         bool csvEvent, bool emailEvent, bool msTeamsEvent, bool sqlEvent, bool httpEvent, bool textFileEvent,
                                         string msTeamsUrl, List <string> emailRecipientAddresses)
        {
            // Get audit event settings repositories
            IMSTeamsAuditEventSettingsRepository  msTeamsAuditEventSettingsRepository  = auditEventSettingsRepositories.ContainsKey(typeof(IMSTeamsAuditEventSettingsRepository)) ? (IMSTeamsAuditEventSettingsRepository)auditEventSettingsRepositories[typeof(IMSTeamsAuditEventSettingsRepository)] : null;
            IEmailAuditEventSettingsRepository    emailAuditEventSettingsRepository    = auditEventSettingsRepositories.ContainsKey(typeof(IEmailAuditEventSettingsRepository)) ? (IEmailAuditEventSettingsRepository)auditEventSettingsRepositories[typeof(IEmailAuditEventSettingsRepository)] : null;
            ICSVAuditEventSettingsRepository      csvAuditEventSettingsRepository      = auditEventSettingsRepositories.ContainsKey(typeof(ICSVAuditEventSettingsRepository)) ? (ICSVAuditEventSettingsRepository)auditEventSettingsRepositories[typeof(ICSVAuditEventSettingsRepository)] : null;
            ISQLAuditEventSettingsRepository      sqlAuditEventSettingsRepository      = auditEventSettingsRepositories.ContainsKey(typeof(ISQLAuditEventSettingsRepository)) ? (ISQLAuditEventSettingsRepository)auditEventSettingsRepositories[typeof(ISQLAuditEventSettingsRepository)] : null;
            IHTTPAuditEventSettingsRepository     httpAuditEventSettingsRepository     = auditEventSettingsRepositories.ContainsKey(typeof(IHTTPAuditEventSettingsRepository)) ? (IHTTPAuditEventSettingsRepository)auditEventSettingsRepositories[typeof(IHTTPAuditEventSettingsRepository)] : null;
            ITextFileAuditEventSettingsRepository textFileAuditEventSettingsRepository = auditEventSettingsRepositories.ContainsKey(typeof(ITextFileAuditEventSettingsRepository)) ? (ITextFileAuditEventSettingsRepository)auditEventSettingsRepositories[typeof(ITextFileAuditEventSettingsRepository)] : null;

            // Configure CSV
            if (csvAuditEventSettingsRepository != null)
            {
                CSVAuditEventSettings csvAuditEventSettings = new CSVAuditEventSettings()
                {
                    EventTypeId = eventTypeId,
                    Enabled     = csvEvent
                };
                csvAuditEventSettingsRepository.Insert(new List <CSVAuditEventSettings>()
                {
                    csvAuditEventSettings
                });
            }

            // Configure email
            if (emailAuditEventSettingsRepository != null)
            {
                EmailAuditEventSettings emailAuditEventSettings = new EmailAuditEventSettings()
                {
                    EventTypeId          = eventTypeId,
                    EmailCreatorId       = "Default",
                    NotificationSettings = new EmailNotificationSettings()
                    {
                        Enabled            = emailEvent,
                        SenderAddress      = "*****@*****.**",
                        RecipientAddresses = emailRecipientAddresses
                    }
                };
                emailAuditEventSettingsRepository.AddRange(new List <EmailAuditEventSettings>()
                {
                    emailAuditEventSettings
                });
            }

            // Configure MS Teams notification
            if (msTeamsAuditEventSettingsRepository != null)
            {
                MSTeamsAuditEventSettings msTeamsAuditEventSettings = new MSTeamsAuditEventSettings()
                {
                    EventTypeId         = eventTypeId,
                    MessageCreatorId    = "Basic",
                    PostMessageSettings = new MSTeamsPostMessageSettings()
                    {
                        Enabled = msTeamsEvent,
                        Url     = msTeamsUrl
                    }
                };
                msTeamsAuditEventSettingsRepository.Insert(new List <MSTeamsAuditEventSettings>()
                {
                    msTeamsAuditEventSettings
                });
            }

            // Configure SQL
            if (sqlAuditEventSettingsRepository != null)
            {
                SQLAuditEventSettings sqlAuditEventSettings = new SQLAuditEventSettings()
                {
                    EventTypeId      = eventTypeId,
                    Enabled          = sqlEvent,
                    ConnectionString = ""    // TODO: Set this
                };
                sqlAuditEventSettingsRepository.Insert(new List <SQLAuditEventSettings>()
                {
                    sqlAuditEventSettings
                });
            }

            // Configure HTTP
            if (httpAuditEventSettingsRepository != null)
            {
                HTTPAuditEventSettings httpAuditEventSettings = new HTTPAuditEventSettings()
                {
                    EventTypeId     = eventTypeId,
                    Enabled         = httpEvent,
                    RequestSettings = new HTTPRequestSettings()
                    {
                        Method          = "POST",
                        URL             = @"http:\\myserver\event",
                        ContentTemplate = "{event_json}",
                        Headers         = new Dictionary <string, string>()
                        {
                        }
                    },
                    ResponseSettings = new HTTPResponseSettings()
                    {
                        SuccessStatusCodes = new List <System.Net.HttpStatusCode>()
                        {
                            System.Net.HttpStatusCode.OK
                        }
                    }
                };
                httpAuditEventSettingsRepository.Insert(new List <HTTPAuditEventSettings>()
                {
                    httpAuditEventSettings
                });
            }

            // Configure text file
            if (textFileAuditEventSettingsRepository != null)
            {
                TextFileAuditEventSettings textFileAuditEventSettings = new TextFileAuditEventSettings()
                {
                    EventTypeId = eventTypeId,
                    Enabled     = textFileEvent,
                    FormatterId = "Basic"
                };
                textFileAuditEventSettingsRepository.Insert(new List <TextFileAuditEventSettings>()
                {
                    textFileAuditEventSettings
                });
            }
        }