Example #1
0
        private static void AddEvent(IScribeDatabase database, BloodhoundEvent item, Event parent)
        {
            var entity = item.ToEntity(parent);

            database.Events.Add(entity);
            item.Children.ForEach(x => AddEvent(database, x, entity));
        }
Example #2
0
        public static PageVersion AddPage(IScribeDatabase database, string title, string content, User user, ApprovalStatus status, bool published = false, params string[] tags)
        {
            var service = new ScribeService(database, null, GetSearchService(), user);
            var view    = service.SavePage(new PageView {
                ApprovalStatus = status, Title = title, Text = content, Tags = tags
            });

            switch (status)
            {
            case ApprovalStatus.Approved:
                service.UpdatePage(new PageUpdate {
                    Id = view.Id, Type = PageUpdateType.Approve
                });
                break;

            case ApprovalStatus.Rejected:
                service.UpdatePage(new PageUpdate {
                    Id = view.Id, Type = PageUpdateType.Reject
                });
                break;
            }

            if (published)
            {
                service.UpdatePage(new PageUpdate {
                    Id = view.Id, Type = PageUpdateType.Publish
                });
            }

            return(database.PageVersions.First(x => x.Id == view.Id));
        }
Example #3
0
 public SearchService(IScribeDatabase database, string path, User user)
 {
     _database   = database;
     _settings   = SiteSettings.Load(database);
     _indexPath2 = path;
     _user       = user;
 }
Example #4
0
        public static void AddSettings(IScribeDatabase database, SettingsView settings)
        {
            var service = SiteSettings.Load(database);

            service.Apply(settings);
            service.Save();
        }
Example #5
0
        public static PageVersion UpdatePage(IScribeDatabase database, User user, PageView view, Action <PageView> action, ApprovalStatus status = ApprovalStatus.None, bool published = false)
        {
            var service = new ScribeService(database, null, GetSearchService(), user);

            action(view);

            service.SavePage(view);
            database.SaveChanges();

            switch (status)
            {
            case ApprovalStatus.Approved:
                service.UpdatePage(new PageUpdate {
                    Id = view.Id, Type = PageUpdateType.Approve
                });
                break;

            case ApprovalStatus.Rejected:
                service.UpdatePage(new PageUpdate {
                    Id = view.Id, Type = PageUpdateType.Reject
                });
                break;
            }

            if (published)
            {
                service.UpdatePage(new PageUpdate {
                    Id = view.Id, Type = PageUpdateType.Publish
                });
            }

            database.SaveChanges();

            return(database.PageVersions.OrderByDescending(x => x.PageId == view.Id).First());
        }
Example #6
0
        public static SiteSettings Load(IScribeDatabase database, bool ignoreCache = false)
        {
            var response = new SiteSettings(database);

            response.Load(ignoreCache);
            return(response);
        }
Example #7
0
        public static SettingsView AddSettings(IScribeDatabase database, SettingsView settings)
        {
            var service = SiteSettings.Load(database);

            service.Apply(settings);
            service.Save();
            database.SaveChanges();
            return(settings);
        }
Example #8
0
        public static File AddFile(IScribeDatabase database, User user, string name, string type, byte[] data)
        {
            var service = new ScribeService(database, null, null, user);
            var id      = service.SaveFile(new FileView {
                Name = name, Data = data, Type = type
            });

            return(database.Files.First(x => x.Id == id));
        }
Example #9
0
        public static User AddUser(IScribeDatabase database, string userName, string password, params string[] roles)
        {
            var user = new User
            {
                DisplayName  = userName,
                UserName     = userName.Replace(" ", ""),
                EmailAddress = $"{userName}@domain.com",
                Tags         = $",{string.Join(",", roles)},"
            };

            user.SetPassword(password);
            database.Users.Add(user);
            return(user);
        }
Example #10
0
        public static void AddDefaultSettings(IScribeDatabase database)
        {
            var service  = SiteSettings.Load(database);
            var settings = new SettingsView
            {
                ContactEmail           = string.Empty,
                EnableGuestMode        = false,
                LdapConnectionString   = string.Empty,
                OverwriteFilesOnUpload = false,
                PrintCss = string.Empty,
                ViewCss  = string.Empty
            };

            service.Apply(settings);
            service.Save();
        }
Example #11
0
        private static void AddOrUpdateEvent(IScribeDatabase database, BloodhoundEvent item, Event parent)
        {
            var entity        = item.ToEntity(parent);
            var existingEvent = database.Events.FirstOrDefault(x => x.UniqueId == item.UniqueId);

            if (existingEvent != null)
            {
                existingEvent.Update(entity);
            }
            else
            {
                database.Events.Add(entity);
            }

            item.Children.ForEach(x => AddOrUpdateEvent(database, x, entity));
        }
Example #12
0
        public static User AddUser(IScribeDatabase database, string userName, string emailAddress, string password, params string[] roles)
        {
            var user = new User
            {
                DisplayName       = userName,
                EmailAddress      = emailAddress,
                IsEnabled         = true,
                IsActiveDirectory = false,
                Tags     = $",{string.Join(",", roles)},",
                UserName = userName
            };

            user.SetPassword(password);
            user.UpdatePictureUrl();
            database.Users.Add(user);
            return(user);
        }
Example #13
0
        public static void AddDefaultSettings(IScribeDatabase database)
        {
            var service  = SiteSettings.Load(database, true);
            var settings = new SettingsView
            {
                ContactEmail           = "*****@*****.**",
                EnableGuestMode        = false,
                LdapConnectionString   = string.Empty,
                MailServer             = "127.0.0.1",
                OverwriteFilesOnUpload = false,
                SoftDelete             = false,
                ViewCss  = string.Empty,
                PrintCss = string.Empty
            };

            service.Apply(settings);
            service.Save();
        }
Example #14
0
        public static PageVersion AddPage(IScribeDatabase database, string title, string content, User user, ApprovalStatus status = ApprovalStatus.None, bool published = false, bool homepage = false, params string[] tags)
        {
            var service = new ScribeService(database, null, GetSearchService(), user);
            var view    = service.SavePage(new PageView {
                ApprovalStatus = status, Title = title, Text = content, Tags = tags
            });

            switch (status)
            {
            case ApprovalStatus.Approved:
                service.UpdatePage(new PageUpdate {
                    Id = view.Id, Type = PageUpdateType.Approve
                });
                break;

            case ApprovalStatus.Rejected:
                service.UpdatePage(new PageUpdate {
                    Id = view.Id, Type = PageUpdateType.Reject
                });
                break;
            }

            if (published)
            {
                service.UpdatePage(new PageUpdate {
                    Id = view.Id, Type = PageUpdateType.Publish
                });
            }

            if (homepage)
            {
                var settings = SiteSettings.Load(database);
                settings.FrontPagePrivateId = view.Id;
                settings.FrontPagePublicId  = view.Id;
                settings.Save();
                database.SaveChanges();
            }

            return(database.PageVersions.OrderByDescending(x => x.PageId == view.Id).First());
        }
Example #15
0
        public ScribeService(IScribeDatabase database, AccountService accountService, ISearchService searchService, User user)
        {
            _database       = database;
            _accountService = accountService;
            _searchService  = searchService;
            _siteSettings   = SiteSettings.Load(database);
            _user           = user;

            Converter = new MarkupConverter();
            Converter.ImagedParsed += title => _database.Files.Where(x => x.Name == title).Select(x => new FileView {
                Id = x.Id, Name = x.Name
            }).FirstOrDefault();
            Converter.LinkParsed += (title, title2) =>
            {
                return(GetCurrentPagesQuery().Where(x => x.Title == title || x.Title == title2).Select(x => new PageView {
                    Id = x.PageId, Title = x.Title
                }).FirstOrDefault()
                       ?? GetCurrentPagesQuery().Where(x => "Page/" + x.PageId == title || x.PageId.ToString() == title).Select(x => new PageView {
                    Id = x.PageId, Title = x.Title
                }).FirstOrDefault());
            };
        }
Example #16
0
 public AccountController(IScribeDatabase database, IAuthenticationService authenticationService, INotificationService notificationService)
     : base(database, authenticationService)
 {
     NotificationService = notificationService;
 }
Example #17
0
 public SettingsController(IScribeDatabase database, IAuthenticationService authenticationService, INotificationHub notificationHub)
     : base(database, authenticationService)
 {
 }
Example #18
0
 public AnalyticsService(IScribeDatabase database)
 {
     _database = database;
 }
Example #19
0
 private SiteSettings(IScribeDatabase database)
     : base(database.Settings, null)
 {
 }
 public AnalyticsController(IScribeDatabase database, IAuthenticationService authenticationService, INotificationHub notificationHub)
     : base(database, authenticationService)
 {
     _notificationHub = notificationHub;
     _service         = new AnalyticsService(Database);
 }
Example #21
0
 public AccountService(IScribeDatabase database, IAuthenticationService authenticationService)
 {
     _database = database;
     _authenticationService = authenticationService;
     _ldapConnectionString  = SiteSettings.Load(database).LdapConnectionString;
 }
Example #22
0
 public PageController(IScribeDatabase database, IAuthenticationService authenticationService, INotificationHub notificationHub)
     : base(database, authenticationService)
 {
     _notificationHub = notificationHub;
 }
Example #23
0
 public FileController(IScribeDatabase database, IAuthenticationService authenticationService)
     : base(database, authenticationService)
 {
 }
Example #24
0
 public BaseApiController(IScribeDatabase database, IAuthenticationService authenticationService)
 {
     Database = database;
     AuthenticationService = authenticationService;
 }