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); } }
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); }
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); }
// 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); }