public EmailAccountDetailsValidator(IEmailAccountRules emailAccountRules, ISiteRules siteRules)
            : base(siteRules)
        {
            _emailAccountRules = emailAccountRules;

            RuleFor(c => c.Address)
            .NotEmpty().WithMessage("Email account address is required.")
            .Length(1, 250).WithMessage("Email account address length must be between 1 and 250 characters.")
            .EmailAddress().WithMessage("Email account address not valid.")
            .Must(HaveUniqueAddress).WithMessage("An email account with the same address already exists.");

            RuleFor(c => c.DisplayName)
            .Length(1, 100).WithMessage("Display name length must be between 1 and 100 characters.")
            .When(x => !string.IsNullOrWhiteSpace(x.DisplayName));

            RuleFor(c => c.Host)
            .NotEmpty().WithMessage("Host is required.")
            .Length(1, 250).WithMessage("Host length must be between 1 and 250 characters.");

            RuleFor(c => c.Port)
            .NotEmpty().WithMessage("Port is required.");

            RuleFor(c => c.UserName)
            .NotEmpty().WithMessage("Username is required.")
            .Length(1, 250).WithMessage("Username length must be between 1 and 250 characters.")
            .When(x => x.DefaultCredentials == false);

            RuleFor(c => c.Password)
            .NotEmpty().WithMessage("Password is required.")
            .Length(1, 250).WithMessage("Password length must be between 1 and 250 characters.")
            .When(x => x.DefaultCredentials == false);
        }
Beispiel #2
0
 public UpdatePageDetailsValidator(IPageRules pageRules,
                                   ISiteRules siteRules,
                                   ILanguageRules languageRules,
                                   IValidator <PageLocalisation> localisationValidator)
     : base(pageRules, siteRules, languageRules, localisationValidator)
 {
 }
Beispiel #3
0
        public LanguageDetailsValidator(ILanguageRules languageRules, ISiteRules siteRules)
        {
            _languageRules = languageRules;
            _siteRules     = siteRules;

            RuleFor(c => c.SiteId)
            .NotEmpty().WithMessage("Site id is required.")
            .Must(BeAnExistingSite).WithMessage("Site does not exist.");

            RuleFor(c => c.Name)
            .NotEmpty().WithMessage("Language name is required.")
            .Length(2, 100).WithMessage("Language name length must be between 2 and 100 characters.")
            .Must(HaveValidName).WithMessage("Language name is not valid. Enter only letters, numbers, underscores and hyphens.")
            .Must(HaveUniqueName).WithMessage("A language with the same name already exists.");

            RuleFor(c => c.CultureName)
            .NotEmpty().WithMessage("Culture name is required.")
            .Length(2, 100).WithMessage("Culture name length must be between 2 and 100 characters.")
            .Must(HaveValidCultureName).WithMessage("Culture name is not valid. Enter only letters and 1 hyphen.")
            .Must(HaveUniqueCultureName).WithMessage("A language with the same culture name already exists.");

            RuleFor(c => c.Url)
            .NotEmpty().WithMessage("Language url is required.")
            .Length(2, 100).WithMessage("Language url length must be between 2 and 100 characters.")
            .Must(HaveValidLanguageUrl).WithMessage("Language url is not valid. Enter only letters and 1 hyphen.")
            .Must(HaveUniqueLanguageUrl).WithMessage("A language with the same url already exists.");
        }
Beispiel #4
0
        public AddVersionValidator(ITextModuleRules textModuleRules,
                                   IModuleRules moduleRules,
                                   ISiteRules siteRules,
                                   ILanguageRules languageRules,
                                   IValidator <AddVersion.VersionLocalisation> localisationValidator)
        {
            _textModuleRules       = textModuleRules;
            _moduleRules           = moduleRules;
            _siteRules             = siteRules;
            _languageRules         = languageRules;
            _localisationValidator = localisationValidator;

            RuleFor(c => c.ModuleId)
            .NotEmpty().WithMessage("Module id is required.")
            .Must(BeAnExistingModule).WithMessage("Module does not exist.");

            RuleFor(c => c.SiteId)
            .NotEmpty().WithMessage("Site id is required.")
            .Must(BeAnExistingSite).WithMessage("Site does not exist.");

            RuleFor(c => c.Content)
            .NotEmpty().WithMessage("Content is required.");

            RuleFor(c => c.Description)
            .Length(1, 250).WithMessage("Description cannot be longer of 250 characters.")
            .When(c => !string.IsNullOrWhiteSpace(c.Description));

            RuleFor(c => c.VersionLocalisations)
            .Must(IncludeAllSupportedLanguages).WithMessage("All supported languages should be included.");

            RuleFor(c => c.VersionLocalisations)
            .SetCollectionValidator(_localisationValidator);
        }
        public UpdateSiteDetailsValidator(ISiteRules siteRules,
                                          ILanguageRules languageRules,
                                          IValidator <UpdateSiteDetails.SiteLocalisation> localisationValidator)
        {
            _siteRules             = siteRules;
            _siteRules             = siteRules;
            _languageRules         = languageRules;
            _localisationValidator = localisationValidator;

            RuleFor(c => c.Url)
            .NotEmpty().WithMessage("Site url is required.")
            .Length(1, 50).WithMessage("Site url length must be between 1 and 200 characters.")
            .Must(HaveValidUrl).WithMessage("Site url is not valid. Enter only letters, numbers, underscores and hyphens with no spaces.")
            .Must(HaveUniqueUrl).WithMessage("A site with the same url already exists.");

            RuleFor(c => c.Title)
            .Length(1, 250).WithMessage("Head title cannot have more than 250 characters.")
            .When(x => !string.IsNullOrWhiteSpace(x.Title));

            RuleFor(c => c.MetaDescription)
            .Length(1, 500).WithMessage("Meta description cannot have more than 500 characters.")
            .When(x => !string.IsNullOrWhiteSpace(x.MetaDescription));

            RuleFor(c => c.MetaKeywords)
            .Length(1, 500).WithMessage("Meta keywords cannot have more than 500 characters.")
            .When(x => !string.IsNullOrWhiteSpace(x.MetaKeywords));

            RuleFor(c => c.SiteLocalisations)
            .Must(IncludeAllSupportedLanguages).WithMessage("All supported languages should be included.");

            RuleFor(c => c.SiteLocalisations)
            .SetCollectionValidator(_localisationValidator);
        }
Beispiel #6
0
        public MenuItemValidator(ISiteRules siteRules,
                                 IPageRules pageRules,
                                 ILanguageRules languageRules,
                                 IValidator <MenuItemLocalisation> localisationValidator)
            : base(siteRules)
        {
            _pageRules             = pageRules;
            _languageRules         = languageRules;
            _localisationValidator = localisationValidator;

            RuleFor(c => c.PageId)
            .NotEmpty().WithMessage("Page is required.")
            .Must(BeAnExistingPage).WithMessage("Page does not exist.")
            .When(c => c.Type == MenuItemType.Page);

            RuleFor(c => c.Link)
            .NotEmpty().WithMessage("Link is required.")
            .Length(1, 250).WithMessage("Link length must be between 1 and 250 characters.")
            .When(c => c.Type == MenuItemType.Link);

            RuleFor(c => c.Text)
            .NotEmpty().WithMessage("Text is required.")
            .Length(1, 100).WithMessage("Text length must be between 1 and 100 characters.");

            RuleFor(c => c.Title)
            .Length(1, 100).WithMessage("Title length must be between 1 and 100 characters.")
            .When(c => c.Title != string.Empty);

            RuleFor(c => c.MenuItemLocalisations)
            .Must(IncludeAllSupportedLanguages).WithMessage("All supported languages should be included.");

            RuleFor(c => c.MenuItemLocalisations)
            .SetCollectionValidator(_localisationValidator);
        }
 public UpdateMenuItemValidator(ISiteRules siteRules,
                                IPageRules pageRules,
                                ILanguageRules languageRules,
                                IValidator <MenuItemDetails.MenuItemLocalisation> localisationValidator)
     : base(siteRules, pageRules, languageRules, localisationValidator)
 {
 }
Beispiel #8
0
        public RemovePageModuleValidator(ISiteRules siteRules)
        {
            _siteRules = siteRules;

            RuleFor(c => c.SiteId)
            .NotEmpty().WithMessage("Site id is required.")
            .Must(BeAnExistingSite).WithMessage("Site does not exist.");
        }
        public DeleteEmailAccountValidator(ISiteRules siteRules)
        {
            _siteRules = siteRules;

            RuleFor(c => c.SiteId)
            .NotEmpty().WithMessage("Site id is required.")
            .Must(BeAnExistingSite).WithMessage("Site does not exist.");
        }
Beispiel #10
0
 public SiteController(IDispatcher dispatcher,
                       ISiteRules siteRules,
                       IContextService contextService)
     : base(contextService)
 {
     _dispatcher = dispatcher;
     _siteRules  = siteRules;
 }
Beispiel #11
0
        public DeletePageValidator(ISiteRules siteRules)
            : base(siteRules)
        {
            _siteRules = siteRules;

            RuleFor(c => c.Id)
            .Must(NotBeInUseAsHomePage)
            .WithMessage("Page is used as Home Page and cannot be deleted.");
        }
Beispiel #12
0
        public CreateLanguageValidator(ILanguageRules languageRules, ISiteRules siteRules)
            : base(languageRules, siteRules)
        {
            _languageRules = languageRules;

            RuleFor(c => c.Id)
            .NotEmpty().WithMessage("Id is required.")
            .Must(HaveUniqueId).WithMessage("A language with the same id already exists.");
        }
 public AddMenuItemValidator(ISiteRules siteRules,
                             IPageRules pageRules,
                             ILanguageRules languageRules,
                             IValidator <MenuItemDetails.MenuItemLocalisation> localisationValidator)
     : base(siteRules, pageRules, languageRules, localisationValidator)
 {
     RuleFor(c => c.MenuItemId)
     .NotEmpty().WithMessage("Menu item id is required.");
 }
Beispiel #14
0
        public CreateEmailAccountValidator(IEmailAccountRules emailAccountRules, ISiteRules siteRules)
            : base(emailAccountRules, siteRules)
        {
            _emailAccountRules = emailAccountRules;

            RuleFor(c => c.Id)
            .Must(HaveUniqueId).WithMessage("An email account with the same id already exists.")
            .When(x => x.Id != Guid.Empty);
        }
        public CreateLanguageValidator(ILanguageRules languageRules, ISiteRules siteRules)
            : base(languageRules, siteRules)
        {
            _languageRules = languageRules;

            RuleFor(c => c.Id)
            .Must(HaveUniqueId).WithMessage("A language with the same id already exists.")
            .When(x => x.Id != Guid.Empty);
        }
Beispiel #16
0
        public CreateEmailAccountValidator(IEmailAccountRules emailAccountRules, ISiteRules siteRules)
            : base(emailAccountRules, siteRules)
        {
            _emailAccountRules = emailAccountRules;

            RuleFor(c => c.Id)
            .NotEmpty().WithMessage("Id is required.")
            .Must(HaveUniqueId).WithMessage("An email account with the same id already exists.");
        }
Beispiel #17
0
 public SiteController(ICommandSender commandSender,
                       ISiteFacade siteFacade,
                       ISiteRules siteRules,
                       IContextService contextService)
     : base(contextService)
 {
     _siteFacade    = siteFacade;
     _commandSender = commandSender;
     _siteRules     = siteRules;
 }
Beispiel #18
0
 public SiteController(ICommandSender commandSender,
                       IQueryDispatcher queryDispatcher,
                       ISiteRules siteRules,
                       IContextService contextService)
     : base(contextService)
 {
     _commandSender   = commandSender;
     _queryDispatcher = queryDispatcher;
     _siteRules       = siteRules;
 }
Beispiel #19
0
        public CreatePageValidator(IPageRules pageRules,
                                   ISiteRules siteRules,
                                   ILanguageRules languageRules,
                                   IValidator <PageLocalisation> localisationValidator)
            : base(pageRules, siteRules, languageRules, localisationValidator)
        {
            _pageRules = pageRules;

            RuleFor(c => c.Id)
            .NotEmpty().WithMessage("Id is required.")
            .Must(HaveUniqueId).WithMessage("A page with the same id already exists.");
        }
Beispiel #20
0
        public CreatePageValidator(IPageRules pageRules,
                                   ISiteRules siteRules,
                                   ILanguageRules languageRules,
                                   IValidator <PageLocalisation> localisationValidator)
            : base(pageRules, siteRules, languageRules, localisationValidator)
        {
            _pageRules = pageRules;

            RuleFor(c => c.Id)
            .Must(HaveUniqueId).WithMessage("A page with the same id already exists.")
            .When(x => x.Id != Guid.Empty);
        }
        public UpdatePageModuleDetailsValidator(ISiteRules siteRules,
                                                IValidator <PageModuleLocalisation> localisationValidator)
            : base(siteRules)
        {
            _localisationValidator = localisationValidator;

            RuleFor(c => c.Title)
            .Length(1, 250).WithMessage("Title cannot have more than 250 characters.")
            .When(x => !string.IsNullOrWhiteSpace(x.Title));

            RuleFor(c => c.PageModuleLocalisations)
            .SetCollectionValidator(_localisationValidator);
        }
        public DeleteModuleValidator(ISiteRules siteRules, IModuleRules moduleRules)
        {
            _siteRules   = siteRules;
            _moduleRules = moduleRules;

            RuleFor(c => c.SiteId)
            .NotEmpty().WithMessage("Site id is required.")
            .Must(BeAnExistingSite).WithMessage("Site does not exist.");

            RuleFor(c => c.Id)
            .NotEmpty().WithMessage("Id is required.")
            .Must(NotBeInUse).WithMessage("Module is in use.");
        }
Beispiel #23
0
        public CreateSiteValidator(ISiteRules siteRules)
        {
            _siteRules = siteRules;

            RuleFor(c => c.Id)
            .NotEmpty().WithMessage("Id is required.")
            .Must(HaveUniqueId).WithMessage("A site with the same id already exists.");

            RuleFor(c => c.Name)
            .NotEmpty().WithMessage("Name is required.")
            .Length(3, 100).WithMessage("Site name length must be between 3 and 100 characters.")
            .Must(HaveValidName).WithMessage("Site name is not valid. Enter only letters, numbers, underscores and hyphens.")
            .Must(HaveUniqueName).WithMessage("A site with the same name already exists.");
        }
Beispiel #24
0
        public CreateMenuValidator(IMenuRules menuRules, ISiteRules siteRules)
            : base(siteRules)
        {
            _menuRules = menuRules;

            RuleFor(c => c.Id)
            .Must(HaveUniqueId).WithMessage("A menu with the same id already exists.")
            .When(x => x.Id != Guid.Empty);

            RuleFor(c => c.Name)
            .NotEmpty().WithMessage("Menu name is required.")
            .Length(3, 100).WithMessage("Menu name length must be between 3 and 100 characters.")
            .Must(HaveValidName).WithMessage("Menu name is not valid. Enter only letters, numbers, underscores and hyphens.")
            .Must(HaveUniqueName).WithMessage("A menu with the same name already exists.");
        }
Beispiel #25
0
        public UpdatePageModuleDetailsValidator(ISiteRules siteRules, IValidator <PageModuleLocalisation> localisationValidator)
        {
            _siteRules             = siteRules;
            _localisationValidator = localisationValidator;

            RuleFor(c => c.SiteId)
            .NotEmpty().WithMessage("Site id is required.")
            .Must(BeAnExistingSite).WithMessage("Site does not exist.");

            RuleFor(c => c.Title)
            .Length(1, 250).WithMessage("Title cannot have more than 250 characters.")
            .When(x => !string.IsNullOrWhiteSpace(x.Title));

            RuleFor(c => c.PageModuleLocalisations)
            .SetCollectionValidator(_localisationValidator);
        }
        public AddPageModuleValidator(ISiteRules siteRules, IModuleRules moduleRules)
            : base(siteRules)
        {
            _moduleRules = moduleRules;

            RuleFor(c => c.ModuleId)
            .NotEmpty().WithMessage("Module id is required.")
            .Must(BeAnExistingModule).WithMessage("Module does not exist.");

            RuleFor(c => c.Title)
            .Length(1, 100).WithMessage("Title cannot have more than 100 characters.")
            .When(x => !string.IsNullOrWhiteSpace(x.Title));

            RuleFor(c => c.Zone)
            .NotEmpty().WithMessage("Zone is required.")
            .Length(1, 100).WithMessage("Zone cannot have more than 100 characters.");
        }
        public PageDetailsValidator(IPageRules pageRules,
                                    ISiteRules siteRules,
                                    ILanguageRules languageRules,
                                    IValidator <PageLocalisation> localisationValidator)
            : base(siteRules)
        {
            _pageRules     = pageRules;
            _languageRules = languageRules;

            RuleFor(c => c.Name)
            .NotEmpty().WithMessage("Page name is required.")
            .Length(1, 100).WithMessage("Page name length must be between 1 and 100 characters.")
            .Must(HaveValidName).WithMessage("Page name is not valid. Enter only letters, numbers, underscores and hyphens.")
            .Must(HaveUniqueName).WithMessage("A page with the same name already exists.");

            RuleFor(c => c.Url)
            .NotEmpty().WithMessage("Page url is required.")
            .Length(1, 200).WithMessage("Page url length must be between 1 and 200 characters.")
            .Must(HaveValidUrl).WithMessage("Page url is not valid. Enter only letters, numbers, slashes, underscores and hyphens with no spaces.")
            .Must(NotBeReserved).WithMessage("Page url is reserved.")
            .Must(HaveUniqueSlug).WithMessage("A page with the same url already exists.");

            RuleFor(c => c.Title)
            .Length(1, 250).WithMessage("Head title cannot have more than 250 characters.")
            .When(x => !string.IsNullOrWhiteSpace(x.Title));

            RuleFor(c => c.MetaDescription)
            .Length(1, 500).WithMessage("Meta description cannot have more than 500 characters.")
            .When(x => !string.IsNullOrWhiteSpace(x.MetaDescription));

            RuleFor(c => c.MetaKeywords)
            .Length(1, 500).WithMessage("Meta keywords cannot have more than 500 characters.")
            .When(x => !string.IsNullOrWhiteSpace(x.MetaKeywords));

            RuleFor(c => c.PageLocalisations)
            .Must(IncludeAllSupportedLanguages).WithMessage("All supported languages should be included.");

            RuleFor(c => c.PageLocalisations)
            .Must(IncludeUniqueSlugs).WithMessage("A page with the same localised slug already exists.");

            RuleFor(c => c.PageLocalisations)
            .SetCollectionValidator(localisationValidator);
        }
        public CreateTextModuleValidator(ITextModuleRules textModuleRules,
                                         IModuleRules moduleRules,
                                         ISiteRules siteRules)
            : base(siteRules)
        {
            _textModuleRules = textModuleRules;
            _moduleRules     = moduleRules;

            RuleFor(c => c.Id)
            .NotEmpty().WithMessage("Id is required.")
            .Must(HaveUniqueId).WithMessage("An text with the same id already exists.");

            RuleFor(c => c.ModuleId)
            .NotEmpty().WithMessage("Module id is required.")
            .Must(BeAnExistingModule).WithMessage("Module does not exist.");

            RuleFor(c => c.Content)
            .NotEmpty().WithMessage("Content is required.");
        }
Beispiel #29
0
        public CreateModuleValidator(IModuleRules moduleRules, IModuleTypeRules moduleTypeRules, ISiteRules siteRules)
        {
            _moduleRules     = moduleRules;
            _moduleTypeRules = moduleTypeRules;
            _siteRules       = siteRules;

            RuleFor(c => c.Id)
            .NotEmpty().WithMessage("Id is required.")
            .Must(HaveUniqueId).WithMessage("A module with the same id already exists.");

            RuleFor(c => c.SiteId)
            .NotEmpty().WithMessage("Site id is required.")
            .Must(BeAnExistingSite).WithMessage("Site does not exist.");

            RuleFor(c => c.ModuleTypeId)
            .NotEmpty().WithMessage("Module type id is required.")
            .Must(BeAnExistingModuleType).WithMessage("Module type does not exist.");

            RuleFor(c => c.Title)
            .NotEmpty().WithMessage("Module title is required.")
            .Length(1, 100).WithMessage("Module title length must be between 1 and 100 characters.");
        }
 public ProductListBuilder(ISiteRules rules) : base(rules)
 {
     dictionary = ApplicationDictionary.Instance;
 }