Exemple #1
0
        public void ExecuteWithoutAuditTrail(Func <object, object> action)
        {
            try
            {
                IsTemporarilyDisabled = true;
#if NETFRAMEWORK
                MiniSessionManager.ExecuteInUoW(manager =>
                {
                    var result = action?.Invoke(this);
                }, MiniSessionManager.InstanceSafe);
#else
                MiniSessionManager.ExecuteInUoW(manager =>
                {
                    var result = action?.Invoke(this);
                });
#endif

                IsTemporarilyDisabled = false;
            }
            catch (Exception)
            {
                IsTemporarilyDisabled = false;
                throw;
            }
        }
        public IWorkflowExecutionResult ExecuteSchedule(WorkflowSchedule schedule)
        {
            _log.Debug("------------------------------------------------------");
            _log.DebugFormat("Executing Scheduled Activity: {0} - {1}", schedule.Workflow, schedule.Workflow);
            IWorkflowExecutionResult result = null;

            try
            {
                MiniSessionManager
                .ExecuteInUoW(manager =>
                {
                    result = WorkflowManager.Current.ExecuteWorkflow(schedule.Workflow);
                });
                schedule.IsLastExecutionSuccess = true;
                schedule.LastExecutionMessage   = "Executed Successfully";
            }
            catch (Exception ex)
            {
                _log.Error($"Error executing Scheduled Activity: {schedule.Workflow}", ex);
                schedule.IsLastExecutionSuccess = false;
                schedule.LastExecutionMessage   = $"{ex.Message} - {ex.StackTrace}";
                result = new WorkflowExecutionResult {
                    Status = WorkflowStatus.Failed
                };
            }
            schedule.LastExecution = DateTime.UtcNow;
            MiniSessionManager.ExecuteInUoW(manager =>
            {
                Builder.CreateCreateRepository(manager).Save(schedule);
            });
            _log.DebugFormat("Finished Executing Scheduled Activity: {0} - {1}", schedule.Workflow, schedule.Workflow);
            _log.Debug("------------------------------------------------------");
            return(result);
        }
 public HealthCheckResult Check()
 {
     // TODO - do additional checks here, besides checking the db
     return(MiniSessionManager.ExecuteInUoW(manager => new HealthCheckResult
     {
         status = "ok"
     }));
 }
 private List <WorkflowContextBase> GetExpiredAndDelayedPendingJobs()
 {
     return(MiniSessionManager.ExecuteInUoW(manager =>
     {
         var expiredAndDelayedPendingJobs = Builder.CreateRetrieveRepository(manager).GetAsQueryable <WorkflowContextBase>()
                                            .Where(p => p.Expires && p.ExpirationDateTime <= DateTime.UtcNow)
                                            .ToList();
         return expiredAndDelayedPendingJobs;
     }));
 }
Exemple #5
0
        public void ExecuteInUoWTest()
        {
            var manager = new MiniSessionManager();

            MiniSessionManager.ExecuteInUoW((mgr) => { });

            Assert.ThrowsException <Exception>(() =>
            {
                MiniSessionManager.ExecuteInUoW((mgr) => { throw new Exception(); });
            });
        }
 public void DeleteSchedules()
 {
     MiniSessionManager
     .ExecuteInUoW(manager =>
     {
         var allSchedules = Builder.CreateRetrieveRepository(manager).GetAll <WorkflowSchedule>().ToList();
         foreach (var schedule in allSchedules)
         {
             Builder.CreateDeleteRepository(manager).Delete(schedule);
         }
     });
 }
 internal List <WorkflowSchedule> GetSchedules(bool onlyactive = true)
 {
     return(MiniSessionManager
            .ExecuteInUoW(manager =>
     {
         var data = Builder.CreateRetrieveRepository(manager).GetAsQueryable <WorkflowSchedule>();
         if (onlyactive)
         {
             data = data.Where(s => s.Active);
         }
         return data.ToList();
     }));
 }
 public void SetSchedules(List <WorkflowSchedule> schedules)
 {
     MiniSessionManager
     .ExecuteInUoW(manager =>
     {
         var allScheduleNames = Builder.CreateRetrieveRepository(manager).GetAll <WorkflowSchedule>().Select(s => s.Workflow).ToList();
         //add new
         foreach (var newSchedule in schedules.Where(s => !allScheduleNames.Contains(s.Workflow)))
         {
             newSchedule.Active = true;
             Builder.CreateCreateRepository(manager).Save(newSchedule);
         }
     });
 }
Exemple #9
0
 private static void ProcessListeners(IEnumerable <Action> listeners, bool parallel, bool throwErrors = false)
 {
     if (parallel)
     {
         Parallel.ForEach(listeners, listener =>
         {
             try
             {
                 MiniSessionManager.ExecuteInUoW(manager =>
                 {
                     listener();
                 });
             }
             catch (Exception x)
             {
                 LogManager.GetLogger(typeof(EventsHub)).Warn("Error in Listener", x);
                 if (throwErrors)
                 {
                     throw;
                 }
             }
         });
     }
     else
     {
         foreach (var listener in listeners)
         {
             try
             {
                 listener();
             }
             catch (Exception x)
             {
                 // continue to the next listener on error
                 LogManager.GetLogger(typeof(EventsHub)).Warn("Error in Listener", x);
                 if (throwErrors)
                 {
                     throw;
                 }
             }
         }
     }
 }
Exemple #10
0
 private ApplicationUser PersistApplicationUser(ApplicationUser user)
 {
     if (MiniSessionManager.TryGetInstance() == null)
     {
         MiniSessionManager.ExecuteInUoW(manager =>
         {
             _repositoryBuilder
             .CreateCreateRepository()
             .Save(user);
         }, _sessionManager);
     }
     else
     {
         _repositoryBuilder
         .CreateCreateRepository(_sessionManager)
         .Save(user);
     }
     return(user);
 }
        private void ProcessAutoStartSchedules()
        {
            var schedules = GetSchedules();

            _log.DebugFormat("Found {0} Active Schedules.", schedules.Count);
            foreach (var schedule in schedules.Where(a => a.Active))
            {
                try
                {
                    var expireDateTime = schedule.ExpireOn.HasValue ? schedule.ExpireOn.Value : DateTime.MaxValue;
                    if (expireDateTime <= DateTime.UtcNow)
                    {
                        // Schedule has Expired but it is still active
                        // Mark as Inactive and update the database
                        schedule.Active = false;
                        MiniSessionManager
                        .ExecuteInUoW(manager =>
                        {
                            Builder.CreateCreateRepository(manager).Save(schedule);
                        });
                        continue;
                    }
                    // Should be evaluated?
                    var nextExecTime = GetNextExecutionTime(schedule);
                    if (nextExecTime != DateTime.MinValue && nextExecTime <= DateTime.UtcNow)
                    {
                        // Execute
                        ExecuteSchedule(schedule);
                    }
                    else
                    {
                        _log.DebugFormat("Scheduled Activity: {0} - {1} will be executed on: {2}", schedule.Workflow,
                                         schedule.Workflow,
                                         nextExecTime);
                    }
                }
                catch (Exception ex)
                {
                    _log.Error($"Error processing Scheduled Activity: {schedule.Workflow} - {schedule.Workflow}", ex);
                }
            }
        }
Exemple #12
0
        public void ClearAuditTrailCache()
        {
            MiniSessionManager.ExecuteInUoW(manager =>
            {
                var repo = ServiceLocator.Current.GetInstance <IRepositoryBuilder>().CreateCreateRepository(manager);

                _auditableEntities = new Dictionary <string, AuditableEntity>();
                repo.GetAll <AuditEntityConfiguration>()
                .ForEach(entity =>
                {
                    var auditableEntity = new AuditableEntity {
                        Name = entity.FullName
                    };
                    entity.Properties
                    .Where(property => property.IsAuditable)
                    .ToList()
                    .ForEach(property => auditableEntity.Properties.Add(property.Name, new AuditableProperty
                    {
                        Name         = property.Name,
                        Datatype     = property.DataType,
                        IsComplex    = property.IsComplex,
                        IsCollection = property.IsCollection
                    }));
                    if (!auditableEntity.Properties.Any())
                    {
                        return;
                    }
                    _log.Debug($@"Monitoring object: [{entity.ShortName}]. Monitored Properties:
                                                                * {string.Join("\r\n* ", auditableEntity.Properties.Keys)}");
                    _auditableEntities.Add(entity.FullName, auditableEntity);
                });

                _auditLogEntryTypes = new Dictionary <string, AuditLogEntryType>();
                repo.GetAll <AuditLogEntryType>()
                .ForEach(type => _auditLogEntryTypes.Add(type.Code, type));

                _auditLogPropertyActionTypes = new Dictionary <string, AuditLogPropertyActionType>();
                repo.GetAll <AuditLogPropertyActionType>()
                .ForEach(type => _auditLogPropertyActionTypes.Add(type.Code, type));
            });
        }
        public static void ForEach <T>(IEnumerable <T> items, Action <T, long> iterationFunction)
        {
            var exceptions = new ConcurrentQueue <Exception>();
            var logger     = LogManager.GetLogger(typeof(ParallelTask));
            var taskid     = Guid.NewGuid();

            var outerWatch = new Stopwatch();

            outerWatch.Start();
            Parallel.ForEach(items, (item, state, idx) =>
            {
                var innerWatch = new Stopwatch();
                innerWatch.Start();
                MiniSessionManager.ExecuteInUoW(manager =>
                {
                    try
                    {
                        iterationFunction(item, idx);
                    }
                    catch (Exception e)
                    {
                        exceptions.Enqueue(e);
                    }
                });
                innerWatch.Stop();
                logger.Debug($"Parallel task item {idx}, took: {innerWatch.Elapsed}. ({taskid})");
            });
            outerWatch.Stop();
            logger.Debug($"OVERALL: Parallel ForEach Task took: {outerWatch.Elapsed}.");

            // Throw the exceptions here after the loop completes.
            if (exceptions.Count > 0)
            {
                throw new AggregateException(exceptions);
            }
        }
Exemple #14
0
        public void UpdateAuthorizationTables()
        {
            var  confValue          = System.Configuration.ConfigurationManager.AppSettings["SeedSecurityTables"];
            bool seedSecurityTables = true;
            bool bSeedSecurityTables;

            if (bool.TryParse(confValue, out bSeedSecurityTables))
            {
                seedSecurityTables = bSeedSecurityTables;
            }
            if (!seedSecurityTables)
            {
                return;
            }
            var watch = new System.Diagnostics.Stopwatch();

            watch.Start();
            MiniSessionManager.ExecuteInUoW(manager =>
            {
                var repo     = new Repository(manager);
                var allRoles = new List <ApplicationRole>();
                #region Permissions
                var manageUsersPermission                  = CreateOrUpdatePermission("ManageUsers", "Can Manage Users", false, repo);
                var manageRolesPermission                  = CreateOrUpdatePermission("ManageRoles", "Can Manage Roles", false, repo);
                var managePermissionsPermission            = CreateOrUpdatePermission("ManagePermissions", "Can Manage Permissions", false, repo);
                var manageOperationsPermission             = CreateOrUpdatePermission("ManageOperations", "Can Manage Operations", false, repo);
                var manageSettingsPermission               = CreateOrUpdatePermission("ManageSettings", "Can Manage Settings", false, repo);
                var manageApplicationDataPermission        = CreateOrUpdatePermission("ManageApplicationData", "Can Manage Application Data", false, repo);
                var customerSelectionAndAdminAddPermission = CreateOrUpdatePermission("CustomerSelectionAndAdmin_Add", "CustomerSelectionAndAdmin_Add", false, repo);
                #endregion
                #region Operations
                CreateOrUpdateOperation("GeneralOperation", "ErrorPage", ClaimTypes.GenericAction, true, true, null, repo);
                CreateOrUpdateOperation("Render", "ErrorPage", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("SendErrorToAdministrator", "ErrorPage", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "FirstAdminSetup", ClaimTypes.GenericAction, true, false, null, repo);
                CreateOrUpdateOperation("Render", "FirstAdminSetup", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("Save", "FirstAdminSetup", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "HomePage", ClaimTypes.GenericAction, true, true, null, repo);
                CreateOrUpdateOperation("Render", "HomePage", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "NotFoundPage", ClaimTypes.GenericAction, true, true, null, repo);
                CreateOrUpdateOperation("Render", "NotFoundPage", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "SignInPage", ClaimTypes.GenericAction, false, true, null, repo);
                CreateOrUpdateOperation("Load", "SignInPage", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("SignIn", "SignInPage", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "SignOutPage", ClaimTypes.GenericAction, true, false, null, repo);
                CreateOrUpdateOperation("SignOut", "SignOutPage", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("Render", "SignOutPage", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "Unauthorized", ClaimTypes.GenericAction, true, true, null, repo);
                CreateOrUpdateOperation("Render", "Unauthorized", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "UserPreferences", ClaimTypes.GenericAction, true, false, null, repo);
                CreateOrUpdateOperation("Render", "UserPreferences", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("Save", "UserPreferences", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("LanguageBoxDataSet", "UserPreferences", ClaimTypes.Dataset, true, false, null, repo);
                CreateOrUpdateOperation("LocaleBoxDataSet", "UserPreferences", ClaimTypes.Dataset, true, false, null, repo);
                CreateOrUpdateOperation("ApplicationThemeDataSet", "UserPreferences", ClaimTypes.Dataset, true, false, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "MasterPage", ClaimTypes.GenericAction, true, true, null, repo);
                CreateOrUpdateOperation("Render", "MasterPage", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("SignOut", "MasterPage", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "MasterPageForSlide", ClaimTypes.GenericAction, true, true, null, repo);
                CreateOrUpdateOperation("Render", "MasterPageForSlide", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "ApplicationSettingForm", ClaimTypes.GenericAction, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("AddApplicationSetting", "ApplicationSettingForm", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("EditApplicationSetting", "ApplicationSettingForm", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("SaveApplicationSetting", "ApplicationSettingForm", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("DeleteApplicationSetting", "ApplicationSettingForm", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "ApplicationSettingsList", ClaimTypes.GenericAction, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("Refresh", "ApplicationSettingsList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Retrieve", "ApplicationSettingsList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("List1DataSet", "ApplicationSettingsList", ClaimTypes.Dataset, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "ChangePassword", ClaimTypes.GenericAction, true, false, null, repo);
                CreateOrUpdateOperation("Render", "ChangePassword", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("ChangePassword", "ChangePassword", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "ForgotPassword", ClaimTypes.GenericAction, true, true, null, repo);
                CreateOrUpdateOperation("Render", "ForgotPassword", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("ResetPasswordRequest", "ForgotPassword", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("ResetPassword", "ForgotPassword", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "ManageOperation", ClaimTypes.GenericAction, false, false,
                                        new [] { manageOperationsPermission }, repo);
                CreateOrUpdateOperation("EditOperation", "ManageOperation", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageOperationsPermission }, repo);
                CreateOrUpdateOperation("SaveOperation", "ManageOperation", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageOperationsPermission }, repo);
                CreateOrUpdateOperation("Button2DataSet", "ManageOperation", ClaimTypes.Dataset, false, false,
                                        new [] { manageOperationsPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "ManagePermission", ClaimTypes.GenericAction, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("NewPermission", "ManagePermission", ClaimTypes.ControllerAction, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("EditPermission", "ManagePermission", ClaimTypes.ControllerAction, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("SavePermission", "ManagePermission", ClaimTypes.ControllerAction, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("DeletePermission", "ManagePermission", ClaimTypes.ControllerAction, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("Button4DataSet", "ManagePermission", ClaimTypes.Dataset, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("Button41DataSet", "ManagePermission", ClaimTypes.Dataset, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("Button5DataSet", "ManagePermission", ClaimTypes.Dataset, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "ManageRole", ClaimTypes.GenericAction, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("NewRole", "ManageRole", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("EditRole", "ManageRole", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("SaveRole", "ManageRole", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("DeleteRole", "ManageRole", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("AddPermissionDataSet", "ManageRole", ClaimTypes.Dataset, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "ManageUser", ClaimTypes.GenericAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("NewUser", "ManageUser", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("SetPassword", "ManageUser", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("EditUser", "ManageUser", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("SaveUser", "ManageUser", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("DeleteUser", "ManageUser", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Button1DataSet", "ManageUser", ClaimTypes.Dataset, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Button2DataSet", "ManageUser", ClaimTypes.Dataset, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "OperationsList", ClaimTypes.GenericAction, false, false,
                                        new [] { manageOperationsPermission }, repo);
                CreateOrUpdateOperation("Refresh", "OperationsList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Retrieve", "OperationsList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageOperationsPermission }, repo);
                CreateOrUpdateOperation("List1DataSet", "OperationsList", ClaimTypes.Dataset, false, false,
                                        new [] { manageOperationsPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "PermissionsList", ClaimTypes.GenericAction, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("Refresh", "PermissionsList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Retrieve", "PermissionsList", ClaimTypes.ControllerAction, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("List1DataSet", "PermissionsList", ClaimTypes.Dataset, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "RolesList", ClaimTypes.GenericAction, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("Refresh", "RolesList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Retrieve", "RolesList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("List1DataSet", "RolesList", ClaimTypes.Dataset, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "UsersList", ClaimTypes.GenericAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Retrieve", "UsersList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Refresh", "UsersList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("List1DataSet", "UsersList", ClaimTypes.Dataset, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "MasterPageSignIn", ClaimTypes.GenericAction, true, false, null, repo);
                CreateOrUpdateOperation("Render", "MasterPageSignIn", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "CreateAdmin", ClaimTypes.GenericAction, false, true, null, repo);
                CreateOrUpdateOperation("Index", "CreateAdmin", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("Create", "CreateAdmin", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("AuthorizeAccess", "CreateAdmin", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "DashboardStatistics", ClaimTypes.GenericAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Render", "DashboardStatistics", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("CloseModal", "DashboardStatistics", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("SupplierStatisticDataSet", "DashboardStatistics", ClaimTypes.Dataset, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("SupplierStatisticDataSetOnTime", "DashboardStatistics", ClaimTypes.Dataset, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("SupplierTurnoverDataSet", "DashboardStatistics", ClaimTypes.Dataset, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("OnTimeDataSet", "DashboardStatistics", ClaimTypes.Dataset, false, false,
                                        new [] { manageUsersPermission }, repo);
                #endregion
                #region Roles
                allRoles = new List <ApplicationRole>
                {
                    CreateOrUpdateRole("Administrator", "Administrator",
                                       new [] { manageUsersPermission, manageRolesPermission, managePermissionsPermission, manageOperationsPermission, manageSettingsPermission, manageApplicationDataPermission }, repo),
                };
                #endregion
            });
            watch.Stop();
            log4net.LogManager.GetLogger(typeof(DatabaseSeeder)).Info($"Startup.Database finished in {watch.ElapsedMilliseconds}ms");
        }
Exemple #15
0
        public void UpdateAuthorizationTables()
        {
            var  confValue          = System.Configuration.ConfigurationManager.AppSettings["SeedSecurityTables"];
            bool seedSecurityTables = true;
            bool bSeedSecurityTables;

            if (bool.TryParse(confValue, out bSeedSecurityTables))
            {
                seedSecurityTables = bSeedSecurityTables;
            }
            if (!seedSecurityTables)
            {
                return;
            }
            var watch = new System.Diagnostics.Stopwatch();

            watch.Start();
            MiniSessionManager.ExecuteInUoW(manager =>
            {
                var repo     = new Repository(manager);
                var allRoles = new List <ApplicationRole>();
                #region Permissions
                var manageUsersPermission                  = CreateOrUpdatePermission("ManageUsers", "Can Manage Users", false, repo);
                var manageRolesPermission                  = CreateOrUpdatePermission("ManageRoles", "Can Manage Roles", false, repo);
                var managePermissionsPermission            = CreateOrUpdatePermission("ManagePermissions", "Can Manage Permissions", false, repo);
                var manageOperationsPermission             = CreateOrUpdatePermission("ManageOperations", "Can Manage Operations", false, repo);
                var manageSettingsPermission               = CreateOrUpdatePermission("ManageSettings", "Can Manage Settings", false, repo);
                var manageApplicationDataPermission        = CreateOrUpdatePermission("ManageApplicationData", "Can Manage Application Data", false, repo);
                var customerSelectionAndAdminAddPermission = CreateOrUpdatePermission("CustomerSelectionAndAdmin_Add", "CustomerSelectionAndAdmin_Add", false, repo);
                #endregion
                #region Operations
                CreateOrUpdateOperation("GeneralOperation", "ErrorPage", ClaimTypes.GenericAction, true, true, null, repo);
                CreateOrUpdateOperation("Render", "ErrorPage", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("SendErrorToAdministrator", "ErrorPage", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "FirstAdminSetup", ClaimTypes.GenericAction, true, false, null, repo);
                CreateOrUpdateOperation("Render", "FirstAdminSetup", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("Save", "FirstAdminSetup", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "HomePage", ClaimTypes.GenericAction, true, true, null, repo);
                CreateOrUpdateOperation("Render", "HomePage", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "NotFoundPage", ClaimTypes.GenericAction, true, true, null, repo);
                CreateOrUpdateOperation("Render", "NotFoundPage", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "SignInPage", ClaimTypes.GenericAction, false, true, null, repo);
                CreateOrUpdateOperation("Load", "SignInPage", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("SignIn", "SignInPage", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "SignOutPage", ClaimTypes.GenericAction, true, false, null, repo);
                CreateOrUpdateOperation("SignOut", "SignOutPage", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("Render", "SignOutPage", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "Unauthorized", ClaimTypes.GenericAction, true, true, null, repo);
                CreateOrUpdateOperation("Render", "Unauthorized", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "UserPreferences", ClaimTypes.GenericAction, true, false, null, repo);
                CreateOrUpdateOperation("Render", "UserPreferences", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("Save", "UserPreferences", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("LanguageBoxDataSet", "UserPreferences", ClaimTypes.Dataset, true, false, null, repo);
                CreateOrUpdateOperation("LocaleBoxDataSet", "UserPreferences", ClaimTypes.Dataset, true, false, null, repo);
                CreateOrUpdateOperation("ApplicationThemeDataSet", "UserPreferences", ClaimTypes.Dataset, true, false, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "MasterPage", ClaimTypes.GenericAction, true, true, null, repo);
                CreateOrUpdateOperation("Render", "MasterPage", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("SignOut", "MasterPage", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "MasterPageForSlide", ClaimTypes.GenericAction, true, true, null, repo);
                CreateOrUpdateOperation("Render", "MasterPageForSlide", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "ApplicationSettingForm", ClaimTypes.GenericAction, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("AddApplicationSetting", "ApplicationSettingForm", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("EditApplicationSetting", "ApplicationSettingForm", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("SaveApplicationSetting", "ApplicationSettingForm", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("DeleteApplicationSetting", "ApplicationSettingForm", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "ApplicationSettingsList", ClaimTypes.GenericAction, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("Refresh", "ApplicationSettingsList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Retrieve", "ApplicationSettingsList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("List1DataSet", "ApplicationSettingsList", ClaimTypes.Dataset, false, false,
                                        new [] { manageSettingsPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "ChangePassword", ClaimTypes.GenericAction, true, false, null, repo);
                CreateOrUpdateOperation("Render", "ChangePassword", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("ChangePassword", "ChangePassword", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "ForgotPassword", ClaimTypes.GenericAction, true, true, null, repo);
                CreateOrUpdateOperation("Render", "ForgotPassword", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("ResetPasswordRequest", "ForgotPassword", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("ResetPassword", "ForgotPassword", ClaimTypes.ControllerAction, true, true, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "ManageOperation", ClaimTypes.GenericAction, false, false,
                                        new [] { manageOperationsPermission }, repo);
                CreateOrUpdateOperation("EditOperation", "ManageOperation", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageOperationsPermission }, repo);
                CreateOrUpdateOperation("SaveOperation", "ManageOperation", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageOperationsPermission }, repo);
                CreateOrUpdateOperation("Button2DataSet", "ManageOperation", ClaimTypes.Dataset, false, false,
                                        new [] { manageOperationsPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "ManagePermission", ClaimTypes.GenericAction, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("NewPermission", "ManagePermission", ClaimTypes.ControllerAction, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("EditPermission", "ManagePermission", ClaimTypes.ControllerAction, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("SavePermission", "ManagePermission", ClaimTypes.ControllerAction, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("DeletePermission", "ManagePermission", ClaimTypes.ControllerAction, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("Button4DataSet", "ManagePermission", ClaimTypes.Dataset, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("Button41DataSet", "ManagePermission", ClaimTypes.Dataset, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("Button5DataSet", "ManagePermission", ClaimTypes.Dataset, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "ManageRole", ClaimTypes.GenericAction, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("NewRole", "ManageRole", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("EditRole", "ManageRole", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("SaveRole", "ManageRole", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("DeleteRole", "ManageRole", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("AddPermissionDataSet", "ManageRole", ClaimTypes.Dataset, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "ManageUser", ClaimTypes.GenericAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("NewUser", "ManageUser", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("EditUser", "ManageUser", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("SaveUser", "ManageUser", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("DeleteUser", "ManageUser", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("SetPassword", "ManageUser", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Button1DataSet", "ManageUser", ClaimTypes.Dataset, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Button2DataSet", "ManageUser", ClaimTypes.Dataset, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "OperationsList", ClaimTypes.GenericAction, false, false,
                                        new [] { manageOperationsPermission }, repo);
                CreateOrUpdateOperation("Refresh", "OperationsList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Retrieve", "OperationsList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageOperationsPermission }, repo);
                CreateOrUpdateOperation("List1DataSet", "OperationsList", ClaimTypes.Dataset, false, false,
                                        new [] { manageOperationsPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "PermissionsList", ClaimTypes.GenericAction, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("Refresh", "PermissionsList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Retrieve", "PermissionsList", ClaimTypes.ControllerAction, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("List1DataSet", "PermissionsList", ClaimTypes.Dataset, false, false,
                                        new [] { managePermissionsPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "RolesList", ClaimTypes.GenericAction, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("Refresh", "RolesList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Retrieve", "RolesList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("List1DataSet", "RolesList", ClaimTypes.Dataset, false, false,
                                        new [] { manageRolesPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "UsersList", ClaimTypes.GenericAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Retrieve", "UsersList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("Refresh", "UsersList", ClaimTypes.ControllerAction, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("List1DataSet", "UsersList", ClaimTypes.Dataset, false, false,
                                        new [] { manageUsersPermission }, repo);
                CreateOrUpdateOperation("GeneralOperation", "MasterPageSignIn", ClaimTypes.GenericAction, true, false, null, repo);
                CreateOrUpdateOperation("Render", "MasterPageSignIn", ClaimTypes.ControllerAction, true, false, null, repo);
                CreateOrUpdateOperation("GeneralOperation", "CreateAdmin", ClaimTypes.GenericAction, false, true, null, repo);
                CreateOrUpdateOperation("Index", "CreateAdmin", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("Create", "CreateAdmin", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("AuthorizeAccess", "CreateAdmin", ClaimTypes.ControllerAction, false, true, null, repo);
                CreateOrUpdateOperation("ReconnectSockets", "WorkflowSock", ClaimTypes.IDEF0Activity, true, true, null, repo);
                CreateOrUpdateOperation("CalculateCost", "CostModel", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("GetVolumePerLSP", "KPIService", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("GetVolumePerUnit", "KPIService", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("CO2PerCarrier", "KPIService", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("Orders", "DataSeed", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("InitRegionalAgents", "DataSeed", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("Change", "DataSeed", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("TestGoogleAPI", "DataSeed", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("initWarehouse", "DataSeed", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("testOrderGenerator", "DataSeed", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("testReflection", "DataSeed", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("TruckPosistions", "DataSeed", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("InitKPIs", "KPIInit", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("GetRA", "RA", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("GetOrderWMS", "RA", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("SaveOrder", "RA", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("GetTruckDriver", "RA", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("GetAllOrderWMS", "RA", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("GetOrderByTruck", "RA", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("GetOrderByAgency", "RA", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("Publish", "capacities", ClaimTypes.ExposedService, true, false, null, repo);
                CreateOrUpdateOperation("Import", "deliveryDays", ClaimTypes.ExposedService, true, false, null, repo);
                CreateOrUpdateOperation("Export", "exportInventoryItems", ClaimTypes.ExposedService, true, true, null, repo);
                CreateOrUpdateOperation("Export", "exportItems", ClaimTypes.ExposedService, true, false, null, repo);
                CreateOrUpdateOperation("ExportOFDetails", "exportOFDetails", ClaimTypes.ExposedService, true, false, null, repo);
                CreateOrUpdateOperation("ExportSalesForecastDetails", "exportSalesForecastDetails", ClaimTypes.ExposedService, true, false, null, repo);
                CreateOrUpdateOperation("Import", "inventoryItems", ClaimTypes.ExposedService, true, false, null, repo);
                CreateOrUpdateOperation("Import", "items", ClaimTypes.ExposedService, true, false, null, repo);
                CreateOrUpdateOperation("Import", "minimumQuantities", ClaimTypes.ExposedService, true, false, null, repo);
                CreateOrUpdateOperation("CalculateForSKU", "OrderForecastService", ClaimTypes.ExposedService, true, false, null, repo);
                CreateOrUpdateOperation("Import", "pastOrders", ClaimTypes.ExposedService, true, false, null, repo);
                CreateOrUpdateOperation("Import", "pastSales", ClaimTypes.ExposedService, true, false, null, repo);
                CreateOrUpdateOperation("Import", "salesForecasts", ClaimTypes.ExposedService, true, false, null, repo);
                CreateOrUpdateOperation("Import", "stocksOnHand", ClaimTypes.ExposedService, true, false, null, repo);
                #endregion
                #region Roles
                allRoles = new List <ApplicationRole>
                {
                    CreateOrUpdateRole("Administrator", "Administrator",
                                       new [] { manageUsersPermission, manageRolesPermission, managePermissionsPermission, manageOperationsPermission, manageSettingsPermission, manageApplicationDataPermission }, repo),
                };
                #endregion
            });
            watch.Stop();
            log4net.LogManager.GetLogger(typeof(DatabaseSeeder)).Info($"Startup.Database finished in {watch.ElapsedMilliseconds}ms");
        }
Exemple #16
0
        private void InitializeConfiguration()
        {
            MiniSessionManager.ExecuteInUoW(manager =>
            {
                var repo = ServiceLocator.Current.GetInstance <IRepositoryBuilder>().CreateAuditingRepository(manager);

                var oldEntityConfigurations = repo.GetAll <AuditEntityConfiguration>();

                List <AuditEntityConfiguration> newEntityConfigurations = AuditEntityConfiguration.GetAllEntityConfigurations();
                newEntityConfigurations.ForEach(newEntityConfiguration =>
                {
                    var item = oldEntityConfigurations.FirstOrDefault(c => c.FullName == newEntityConfiguration.FullName);
                    if (item == null)
                    {
                        repo.Save(newEntityConfiguration);
                    }
                    else
                    {
                        item.UpdateAuditEntityConfiguration(newEntityConfiguration, repo);
                    }
                });

                oldEntityConfigurations.ForEach(oldEntityConfiguration =>
                {
                    var item = newEntityConfigurations.FirstOrDefault(c => c.FullName == oldEntityConfiguration.FullName);
                    if (item == null)
                    {
                        repo.DeleteAuditEntityConfiguration(oldEntityConfiguration);
                    }
                });

                var auditLogEntryTypes = repo.GetAll <AuditLogEntryType>();
                if (!auditLogEntryTypes.Any())
                {
                    repo.Save(new AuditLogEntryType {
                        Code = "CREATE", Name = "Create"
                    });
                    repo.Save(new AuditLogEntryType {
                        Code = "UPDATE", Name = "Update"
                    });
                    repo.Save(new AuditLogEntryType {
                        Code = "DELETE", Name = "Delete"
                    });
                    auditLogEntryTypes = repo.GetAll <AuditLogEntryType>();
                }

                var auditLogPropertyActionTypes = repo.GetAll <AuditLogPropertyActionType>();
                var addAction = auditLogPropertyActionTypes.FirstOrDefault(a => a.Code == "ADD");
                if (addAction == null)
                {
                    repo.Save(new AuditLogPropertyActionType {
                        Code = "ADD", Name = "Added Element To Collection"
                    });
                }
                var removeAction = auditLogPropertyActionTypes.FirstOrDefault(a => a.Code == "REMOVE");
                if (removeAction == null)
                {
                    repo.Save(new AuditLogPropertyActionType {
                        Code = "REMOVE", Name = "Removed Element From Collection"
                    });
                }
                var assignAction = auditLogPropertyActionTypes.FirstOrDefault(a => a.Code == "ASSIGN");
                if (assignAction == null)
                {
                    repo.Save(new AuditLogPropertyActionType {
                        Code = "ASSIGN", Name = "Assign Entity"
                    });
                }
            });

            ClearAuditTrailCache();
        }