Ejemplo n.º 1
0
        public BlogIntegrationTestBase()
        {
            // repos
            var catRepo  = new SqlCategoryRepository(_db);
            var tagRepo  = new SqlTagRepository(_db);
            var postRepo = new SqlPostRepository(_db);

            // SettingService mock
            _settingSvcMock = new Mock <ISettingService>();
            _settingSvcMock.Setup(svc => svc.GetSettingsAsync <CoreSettings>()).Returns(Task.FromResult(new CoreSettings()));
            _settingSvcMock.Setup(svc => svc.GetSettingsAsync <BlogSettings>()).Returns(Task.FromResult(new BlogSettings()));

            // MediaService mock
            _mediaSvcMock = new Mock <IMediaService>();

            // Cache
            var serviceProvider = new ServiceCollection().AddMemoryCache().AddLogging().BuildServiceProvider();
            var memCacheOptions = serviceProvider.GetService <IOptions <MemoryDistributedCacheOptions> >();
            var cache           = new MemoryDistributedCache(memCacheOptions);

            // LoggerFactory
            _loggerFactory = serviceProvider.GetService <ILoggerFactory>();

            // Mapper
            var mapper = BlogUtil.Mapper;

            // Shortcode
            var shortcodeSvc = new Mock <IShortcodeService>();

            var loggerBlogSvc = _loggerFactory.CreateLogger <BlogService>();
            var mediatorMock  = new Mock <IMediator>();

            _blogSvc = new BlogService(_settingSvcMock.Object, catRepo, postRepo, tagRepo, cache,
                                       loggerBlogSvc, mapper, shortcodeSvc.Object, mediatorMock.Object);
        }
        protected override async void DeleteEntity(Category obj)
        {
            try
            {
                if (MessageBox.Show(AskDelete, "Удаление", MessageBoxButton.YesNo, MessageBoxImage.Question) !=
                    MessageBoxResult.Yes)
                {
                    return;
                }
                IRepository <Category> categoryRepository = new SqlCategoryRepository();
                await categoryRepository.DeleteAsync(obj);

                MessageBox.Show(SuccessDelete, "Успех", MessageBoxButton.OK, MessageBoxImage.Information);
                if (obj.IdParent == null)
                {
                    EntitiesList.Remove(obj);
                }
                else
                {
                    FindCategory(EntitiesList, obj.IdParent.Value).ChildCategoriesCollection.Remove(obj);
                }
            }
            catch (Exception e)
            {
                LoadAsync();
                MessageBox.Show(e.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Ejemplo n.º 3
0
 public StoreService(SqlProductRepository productRepository, SqlCategoryRepository categoryRepository)
 {
     if (productRepository == null)
     {
         throw new ArgumentNullException(nameof(productRepository));
     }
     if (categoryRepository == null)
     {
         throw new ArgumentNullException(nameof(categoryRepository));
     }
     _productRepository  = productRepository;
     _categoryRepository = categoryRepository;
 }
        private async void MovingCategoryAsync(Category obj)
        {
            try
            {
                Category temp = (Category)obj.Clone();
                temp.Parent = null;
                temp.ChildCategoriesCollection = null;
                temp.ProductsCollection        = null;
                SqlRepository <Category> sqlCategoryRepository = new SqlCategoryRepository();
                await sqlCategoryRepository.UpdateAsync(temp);

                MessageBox.Show("Категория перемещена.", "Успех", MessageBoxButton.OK, MessageBoxImage.Information);
            }
            catch (Exception e)
            {
                LoadAsync();
                MessageBox.Show(e.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        public BlogServiceIntegrationTestBase()
        {
            // ---------------------------------------------------------------- repos

            var catRepo  = new SqlCategoryRepository(_db);
            var tagRepo  = new SqlTagRepository(_db);
            var postRepo = new SqlPostRepository(_db);

            // ---------------------------------------------------------------- mock SettingService

            _settingSvcMock = new Mock <ISettingService>();
            _settingSvcMock.Setup(svc => svc.GetSettingsAsync <CoreSettings>()).Returns(Task.FromResult(new CoreSettings()));
            _settingSvcMock.Setup(svc => svc.GetSettingsAsync <BlogSettings>()).Returns(Task.FromResult(new BlogSettings()));

            // ---------------------------------------------------------------- mock AppSettings

            var appSettingsMock = new Mock <IOptionsSnapshot <AppSettings> >();

            appSettingsMock.Setup(o => o.Value).Returns(new AppSettings());

            // ---------------------------------------------------------------- mock IStorageProvider

            _storageProviderMock = new Mock <IStorageProvider>();
            _storageProviderMock.Setup(pro => pro.StorageEndpoint).Returns(STORAGE_ENDPOINT);

            // ---------------------------------------------------------------- MediaService

            var mediaRepo = new SqlMediaRepository(_db);

            _mediaSvc = new MediaService(_storageProviderMock.Object, appSettingsMock.Object, mediaRepo);

            // ---------------------------------------------------------------- Cache

            var serviceProvider = new ServiceCollection().AddMemoryCache().AddLogging().BuildServiceProvider();
            var memCacheOptions = serviceProvider.GetService <IOptions <MemoryDistributedCacheOptions> >();
            var cache           = new MemoryDistributedCache(memCacheOptions);

            // ---------------------------------------------------------------- LoggerFactory

            _loggerFactory = serviceProvider.GetService <ILoggerFactory>();
            var loggerBlogSvc = _loggerFactory.CreateLogger <BlogPostService>();
            var loggerCatSvc  = _loggerFactory.CreateLogger <CategoryService>();
            var loggerTagSvc  = _loggerFactory.CreateLogger <TagService>();

            // ---------------------------------------------------------------- Mapper, Shortcode

            var mapper       = BlogUtil.Mapper;
            var shortcodeSvc = new Mock <IShortcodeService>();

            // ---------------------------------------------------------------- MediatR and Services

            var services = new ServiceCollection();

            services.AddScoped <ServiceFactory>(p => p.GetService);  // MediatR.ServiceFactory
            services.AddSingleton <IDistributedCache>(cache);        // cache
            services.AddSingleton <FanDbContext>(_db);               // DbContext for repos
            services.Scan(scan => scan
                          .FromAssembliesOf(typeof(IMediator), typeof(ILogger), typeof(IBlogPostService), typeof(ISettingService))
                          .AddClasses()
                          .AsImplementedInterfaces());

            var provider = services.BuildServiceProvider();
            var mediator = provider.GetRequiredService <IMediator>();

            _catSvc = new CategoryService(catRepo, _settingSvcMock.Object, mediator, cache, loggerCatSvc);
            _tagSvc = new TagService(tagRepo, mediator, cache, loggerTagSvc);
            _imgSvc = new ImageService(_mediaSvc, _storageProviderMock.Object, appSettingsMock.Object);

            // the blog service
            _blogSvc = new BlogPostService(
                _settingSvcMock.Object,
                postRepo,
                cache,
                loggerBlogSvc,
                mapper,
                shortcodeSvc.Object,
                mediator);
        }
Ejemplo n.º 6
0
 public SqlCategoryRepositoryTest()
 {
     _catRepo = new SqlCategoryRepository(_db);
 }
        public BlogServiceIntegrationTestBase()
        {
            // ---------------------------------------------------------------- repos

            var catRepo  = new SqlCategoryRepository(_db);
            var tagRepo  = new SqlTagRepository(_db);
            var postRepo = new SqlPostRepository(_db);

            // ---------------------------------------------------------------- mock SettingService

            _settingSvcMock = new Mock <ISettingService>();
            _settingSvcMock.Setup(svc => svc.GetSettingsAsync <CoreSettings>()).Returns(Task.FromResult(new CoreSettings()));
            _settingSvcMock.Setup(svc => svc.GetSettingsAsync <BlogSettings>()).Returns(Task.FromResult(new BlogSettings()));

            // ---------------------------------------------------------------- mock AppSettings

            var appSettingsMock = new Mock <IOptionsSnapshot <AppSettings> >();

            appSettingsMock.Setup(o => o.Value).Returns(new AppSettings());

            // ---------------------------------------------------------------- mock IStorageProvider

            _storageProviderMock = new Mock <IStorageProvider>();
            _storageProviderMock.Setup(pro => pro.StorageEndpoint).Returns(STORAGE_ENDPOINT);

            // ---------------------------------------------------------------- MediaService

            var mediaRepo = new SqlMediaRepository(_db);

            _mediaSvc = new MediaService(_storageProviderMock.Object, appSettingsMock.Object, mediaRepo);

            // ---------------------------------------------------------------- Cache

            var serviceProvider = new ServiceCollection().AddMemoryCache().AddLogging().BuildServiceProvider();
            var memCacheOptions = serviceProvider.GetService <IOptions <MemoryDistributedCacheOptions> >();
            var cache           = new MemoryDistributedCache(memCacheOptions);

            // ---------------------------------------------------------------- LoggerFactory

            _loggerFactory = serviceProvider.GetService <ILoggerFactory>();
            var loggerBlogSvc = _loggerFactory.CreateLogger <BlogService>();

            // ---------------------------------------------------------------- Mapper, Shortcode, Mediator

            var mapper       = BlogUtil.Mapper;
            var shortcodeSvc = new Mock <IShortcodeService>();
            var mediatorMock = new Mock <IMediator>();

            // the blog service
            _blogSvc = new BlogService(
                _settingSvcMock.Object,
                catRepo,
                postRepo,
                tagRepo,
                _mediaSvc,
                _storageProviderMock.Object,
                appSettingsMock.Object,
                cache,
                loggerBlogSvc,
                mapper,
                shortcodeSvc.Object,
                mediatorMock.Object);
        }
Ejemplo n.º 8
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.AddDbContext <ApplicationDbContext>(options =>
                                                         options.UseSqlServer(
                                                             Configuration.GetConnectionString("DefaultConnection")));
            services.AddDefaultIdentity <IdentityUser>()
            .AddEntityFrameworkStores <ApplicationDbContext>();

            services.Configure <IdentityOptions>(options =>
            {
                // Password settings.
                //options.Password.RequireDigit = true;
                //options.Password.RequireLowercase = true;
                //options.Password.RequireNonAlphanumeric = true;
                //options.Password.RequireUppercase = true;
                //options.Password.RequiredLength = 6;
                //options.Password.RequiredUniqueChars = 1;

                // Lockout settings.
                options.Lockout.DefaultLockoutTimeSpan  = TimeSpan.FromMinutes(5);
                options.Lockout.MaxFailedAccessAttempts = 5;
                options.Lockout.AllowedForNewUsers      = true;

                // User settings.
                options.User.AllowedUserNameCharacters =
                    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
                options.User.RequireUniqueEmail = false;
            });

            services.ConfigureApplicationCookie(options =>
            {
                // Cookie settings
                options.Cookie.HttpOnly = true;
                options.ExpireTimeSpan  = TimeSpan.FromMinutes(5);

                options.LoginPath         = "/Identity/Account/Login";
                options.AccessDeniedPath  = "/Identity/Account/AccessDenied";
                options.SlidingExpiration = true;
            });

            var conString = Configuration.GetConnectionString("DefaultConnection");
            ICategoryRepository categoryRepository = new SqlCategoryRepository(conString);
            IProductRepository  productRepository  = new SqlProductRepository(conString);

            services.AddSingleton <ICategoryRepository>(categoryRepository);
            services.AddSingleton <IProductRepository>(productRepository);

            services.Configure <RazorViewEngineOptions>(o =>
            {
                // {2} is area, {1} is controller,{0} is the action
                //o.ViewLocationFormats.Clear();
                o.ViewLocationFormats.Add("/Pages/{1}/{0}" + RazorViewEngine.ViewExtension);
            });

            services.AddMvc()
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }