public static Theme CreateNew(CreateTheme cmd, IValidator <CreateTheme> validator, IThemeSortOrderGenerator sortOrderGenerator) { validator.ValidateCommand(cmd); return(new Theme(cmd, sortOrderGenerator)); }
public CreateThemeHandler(IThemeRepository themeRepository, IValidator <CreateTheme> validator, IThemeSortOrderGenerator sortOrderGenerator) { _themeRepository = themeRepository; _validator = validator; _sortOrderGenerator = sortOrderGenerator; }
private Theme(CreateTheme cmd, IThemeSortOrderGenerator themeSortOrderGenerator) : base(cmd.Id) { AddEvent(new ThemeCreated { AggregateRootId = Id, Name = cmd.Name, Description = cmd.Description, Folder = cmd.Folder, SortOrder = themeSortOrderGenerator.GenerateNextSortOrder(), Status = ThemeStatus.Hidden }); }