예제 #1
0
        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();
            }
        }
예제 #2
0
 public ModuleController(
     IModuleAppService moduleAppService,
     IMapper mapper)
 {
     _moduleAppService = moduleAppService;
     _mapper           = mapper;
     _validator        = new ModuleValidator();
 }
 public ModuleBusinessLogic(
     IMenuBusinessLogic menuBusinessLogic,
     ModuleValidator moduleValidator,
     DbContextOptions <ControlPanelContext> dbContextOptions)
 {
     _moduleValidator   = moduleValidator ?? throw new ArgumentNullException(nameof(moduleValidator));
     _dbContextOptions  = dbContextOptions ?? throw new ArgumentNullException(nameof(dbContextOptions));
     _menuBusinessLogic = menuBusinessLogic ?? throw new ArgumentNullException(nameof(menuBusinessLogic));
 }
        /// <summary>
        ///异步验证
        /// </summary>
        public static async Task DoValidationAsync(IModuleRespository moduleRespository, Module module, string validatorType)
        {
            var moduleValidator   = new ModuleValidator(moduleRespository);
            var validatorReresult = await moduleValidator.DoValidateAsync(module, validatorType);

            if (!validatorReresult.IsValid)
            {
                throw new DomainException(validatorReresult);
            }
        }
        /// <summary>
        ///异步验证
        /// </summary>
        public static async Task DoValidationAsync(IModuleRespository moduleRespository, IEnumerable <Module> modules, string validatorType)
        {
            var moduleValidator = new ModuleValidator(moduleRespository);
            var domainException = new DomainException();

            foreach (var module in modules)
            {
                var validatorReresult = await moduleValidator.DoValidateAsync(module, validatorType);

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

            if (domainException.ValidationErrors.ErrorItems.Any())
            {
                throw domainException;
            }
        }