public TestBase(string testInfo)
        {
            string msg = $"{nameof(testInfo)} cannot be empty.";

            Check.NotNullOrEmptyOrWhitespace(testInfo, msg);

            string fileName = $"Data Source={testInfo}.sqlite";

            MenuValidator   menuValidator   = new MenuValidator();
            ModuleValidator moduleValidator = new ModuleValidator();

            DbContextOptions <ControlPanelContext> dbContext = new DbContextOptionsBuilder <ControlPanelContext>()
                                                               .UseSqlite(fileName)
                                                               .UseLoggerFactory(LoggerFactory)
                                                               .EnableDetailedErrors()
                                                               .EnableSensitiveDataLogging()
                                                               .Options;

            MenuBusinessLogic   = new MenuBusinessLogic(menuValidator, dbContext);
            ModuleBusinessLogic = new ModuleBusinessLogic(MenuBusinessLogic, moduleValidator, dbContext);

            using (ControlPanelContext ctx = new ControlPanelContext(dbContext))
            {
                ctx.Database.EnsureDeleted();
                ctx.Database.EnsureCreated();
            }
        }
        /// <summary>
        ///异步验证
        /// </summary>
        public static async Task DoValidationAsync(IMenuRespository menuRespository, Menu menu, string validatorType)
        {
            var menuValidator     = new MenuValidator(menuRespository);
            var validatorReresult = await menuValidator.DoValidateAsync(menu, validatorType);

            if (!validatorReresult.IsValid)
            {
                throw new DomainException(validatorReresult);
            }
        }
        /// <summary>
        ///异步验证
        /// </summary>
        public static async Task DoValidationAsync(IMenuRespository menuRespository, IEnumerable <Menu> menus, string validatorType)
        {
            var menuValidator   = new MenuValidator(menuRespository);
            var domainException = new DomainException();

            foreach (var menu in menus)
            {
                var validatorReresult = await menuValidator.DoValidateAsync(menu, validatorType);

                if (!validatorReresult.IsValid)
                {
                    domainException.AddErrors(validatorReresult);
                }
            }

            if (domainException.ValidationErrors.ErrorItems.Any())
            {
                throw domainException;
            }
        }
Exemple #4
0
        static void Main(string[] args)
        {
            IWriter writer       = new ConsoleWriter();
            IOption firstOption  = new ConcatOption(writer);
            IOption secondOption = new UpperCaseOption(writer);


            IDictionary <int, IOption> Subdictionary = new Dictionary <int, IOption>();
            IMenu <int>          subMenu             = new Menu <int>(Subdictionary);
            IMenuDisplayer <int> displaySubMenu      = new ConsoleDisplayer <int>(writer);
            IValidator <int>     validator           = new MenuValidator <int>();
            IReader           reader     = new ConsoleReader(writer);
            IDataReader <int> dataReader = new DataReader <int>(validator, reader);

            IUserMenu <int> userSubMenu = new UserMenu <int>(displaySubMenu, dataReader, writer);


            IOption           thirdOption   = new SubDicitonaryOption <int>(userSubMenu, subMenu);
            IOption           lastOption    = new ExitOption();
            IMengedMenu <int> subMengedMenu = new MengedMenu <int>(subMenu);

            subMengedMenu.AddOption(1, firstOption);
            subMengedMenu.AddOption(4, lastOption);
            IDictionary <int, IOption> dictionary = new Dictionary <int, IOption>();
            IMenu <int>       menu       = new Menu <int>(dictionary);
            IMengedMenu <int> mengedMenu = new MengedMenu <int>(menu);

            mengedMenu.AddOption(1, firstOption);
            mengedMenu.AddOption(2, secondOption);
            mengedMenu.AddOption(3, thirdOption);
            mengedMenu.AddOption(4, lastOption);
            IMenuDisplayer <int> displayMenu = new ConsoleDisplayer <int>(writer);
            //IValidator<int> validator = new MenuValidator<int>();
            //IReader reader = new ConsoleReader(writer);
            //IDataReader<int> dataReader = new DataReader<int>(validator, reader);

            IUserMenu <int> mainMenu = new UserMenu <int>(displayMenu, dataReader, writer);

            mainMenu.Run(menu);
        }
 public MenuBusinessLogic(MenuValidator menuValidator, DbContextOptions <ControlPanelContext> dbContextOptions)
 {
     _menuValidator    = menuValidator ?? throw new ArgumentNullException(nameof(menuValidator));
     _dbContextOptions = dbContextOptions ?? throw new ArgumentNullException(nameof(dbContextOptions));
 }
 public MenusController(IMenuService menuService, IUserService userService, MenuValidator validator) : base(userService)
 {
     _menuService = menuService;
     _validator   = validator;
 }