protected override void RegisterTypes(IContainerRegistry containerRegistry)
        {
            var options = new DbContextOptionsBuilder <ToyStoreDbContext>().UseInMemoryDatabase("Customers")
                          .Options;

            containerRegistry.RegisterSingleton <ToyStoreDbContext>(() =>
            {
                var initializer =
                    new ToyStoreContextInitializer();

                var context = new ToyStoreDbContext(options);

                initializer.Initialize(context)
                .Wait();

                return(context);
            });

            containerRegistry.RegisterScoped <IToysCategoriesService, ToysCategoriesService>();
            containerRegistry.RegisterScoped <IToysService, ToysService>();
            containerRegistry.RegisterScoped <ISalesService, SalesService>();
            containerRegistry.RegisterScoped <ICustomersService, CustomersService>();
            containerRegistry.RegisterScoped <IPreOrdersService, PreOrdersService>();

            containerRegistry.Register <ISalesStatisticsPrinter, FileSalesStatisticsPrinter>();

            containerRegistry.RegisterForNavigation <SignInPage, SignInPageViewModel>("SignInPage");
            containerRegistry.RegisterForNavigation <AdminPage, AdminPageViewModel>("AdministratorPage");
            containerRegistry.RegisterForNavigation <ManagerPage, ManagerPageViewModel>("ManagerPage");

            containerRegistry.Register <MainWindow>(() => new MainWindow
            {
                DataContext =
                    new MainWindowViewModel(Container
                                            .Resolve <IRegionManager>(),
                                            Container
                                            .Resolve <IEventAggregator
                                                      >())
            });
        }
Example #2
0
 public ManufacturerService(ToyStoreDbContext db)
 {
     this.db = db;
 }
        public async Task Initialize(ToyStoreDbContext context)
        {
            var random     = new Random();
            var categories = new List <ToyCategoryEntity>();
            var toys       = new List <ToyEntity>();
            var sales      = new List <SaleEntity>();

            for (var i = 0; i < 20; i++)
            {
                var toyCategory = new ToyCategoryEntity
                {
                    Age       = (uint)random.Next(1, 20),
                    CareRules = Guid.NewGuid()
                                .ToString()
                                .Replace("-", "")
                                .ToUpper(),
                    WarrantyPeriod = (uint)random.Next(1, 128)
                };

                categories.Add(toyCategory);
            }

            for (var i = 0; i < 100; i++)
            {
                var toy = new ToyEntity
                {
                    Category = categories[random.Next(0, categories.Count)],
                    Photo    = $"photo{i + random.Next(0, 20000)}{Guid.NewGuid()}",
                    Price    = (decimal)(random.NextDouble() * random.Next(1, 5000)),
                    Producer = Guid.NewGuid()
                               .ToString()
                               .Substring(0, 7)
                               .Replace("-", ""),
                    WarehouseCount = (uint)random.Next(0, 30)
                };

                toys.Add(toy);
            }

            for (var i = 0; i < 1000; i++)
            {
                var selectedToy = toys[random.Next(0, toys.Count)];
                var discount    = random.Next(0, 80);
                var count       = random.Next(1, 100);
                var price       = selectedToy.Price * count * 100 / (discount == 0 ? 1 : discount);

                var sale = new SaleEntity
                {
                    Discount  = (uint)discount,
                    SaleDate  = DateTime.Now,
                    SaleSum   = price,
                    Toy       = selectedToy,
                    SaleCount = (uint)count
                };

                sales.Add(sale);
            }

            await context.ToyCategories.AddRangeAsync(categories);

            await context.Toys.AddRangeAsync(toys);

            await context.Sales.AddRangeAsync(sales);

            await context.SaveChangesAsync();
        }
Example #4
0
 public ProductRepository(ToyStoreDbContext context)
 {
     this.context = context;
     this.context.ChangeTracker.QueryTrackingBehavior = Microsoft.EntityFrameworkCore.QueryTrackingBehavior.NoTracking;
 }
Example #5
0
 public ToysCategoriesService(ToyStoreDbContext context) =>
 public CustomersService(ToyStoreDbContext context) =>
 public ToysService(ToyStoreDbContext context) =>
Example #8
0
 public PreOrdersService(ToyStoreDbContext context) =>
Example #9
0
 public ToyService(ToyStoreDbContext db)
 {
     this.db = db;
 }
Example #10
0
 public SalesService(ToyStoreDbContext context) =>