Пример #1
0
        public IHttpActionResult Get()
        {
            OrderProductService orderDetailService = CreateOrderDetailService();
            var orderDetails = orderDetailService.GetOrderProducts();

            return(Ok(orderDetails));
        }
        public IHttpActionResult Get([FromUri] int id)
        {
            OrderProductService oPS = CreateOrderProductService();
            var orderProduct        = oPS.GetOrderProductById(id);

            return(Ok(orderProduct));
        }
Пример #3
0
        private OrderProductService CreateOrderDetailService()
        {
            var userId             = Guid.Parse(User.Identity.GetUserId());
            var orderDetailService = new OrderProductService(userId);

            return(orderDetailService);
        }
Пример #4
0
        public async Task CreateOrderSuccesfully(string creatorId, string address)
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                          .Options;

            var dbContext = new ApplicationDbContext(options);

            var orderProductsRepository = new EfDeletableEntityRepository <OrderProduct>(dbContext);
            var orderProductsService    = new OrderProductService(orderProductsRepository);

            var orderProduct = new OrderProduct
            {
                CreatorId = creatorId,
                ProductId = 1,
                Quantity  = 1,
                Price     = 7m,
                Status    = OrderProductStatus.Active,
            };

            await orderProductsRepository.AddAsync(orderProduct);

            await orderProductsRepository.SaveChangesAsync();

            var ordersRepository = new EfDeletableEntityRepository <Order>(dbContext);
            var ordersService    = new OrderService(ordersRepository, orderProductsService);

            await ordersService.CreateOrderAsync(creatorId, address);

            Assert.Single(ordersRepository.All().Where(x => x.CreatorId == creatorId));
            Assert.Equal(7m, ordersRepository.All().Where(x => x.CreatorId == creatorId).FirstOrDefault().Price);
        }
Пример #5
0
 /// <summary>
 /// Order menu constructor
 /// </summary>
 /// <param name="repo"></param>
 public OrderMenu(IRepository repo)
 {
     this.repo                = repo;
     this.orderService        = new OrderService(repo);
     this.locationService     = new LocationService(repo);
     this.inventoryService    = new InventoryService(repo);
     this.orderProductService = new OrderProductService(repo);
     this.productService      = new ProductService(repo);
 }
        public async Task SetOrderProductsToOrder()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                          .Options;

            var dbContext = new ApplicationDbContext(options);

            var repository = new EfDeletableEntityRepository <OrderProduct>(dbContext);
            var service    = new OrderProductService(repository);

            var orderProduct1 = new OrderProduct
            {
                ProductId = 1,
                CreatorId = "xxx",
                Quantity  = 1,
                Price     = 10,
                Status    = OrderProductStatus.Active,
            };

            var orderProduct2 = new OrderProduct
            {
                ProductId = 2,
                CreatorId = "xxx",
                Quantity  = 1,
                Price     = 5,
                Status    = OrderProductStatus.Active,
            };

            await repository.AddAsync(orderProduct1);

            await repository.AddAsync(orderProduct2);

            await repository.SaveChangesAsync();

            var orderRepository = new EfDeletableEntityRepository <Order>(dbContext);
            var orderService    = new OrderService(orderRepository, null);

            var order = new Order
            {
                Address   = "ul. Tintyava 15",
                CreatorId = "xxx",
                Price     = 30m,
            };

            await orderRepository.AddAsync(order);

            await orderRepository.SaveChangesAsync();

            service.SetOrderedProductsToOrder(order);

            Assert.Equal(2, order.Products.Count()); // order contains 2 products
        }
Пример #7
0
        public AdminController(ILogger <AdminController> logger, UserManager <ApplicationUser> userManager)
        {
            _logger = logger;

            // Repositories
            _orderRepository        = new GenericRepository <Order>();
            _productRepository      = new GenericRepository <Product>();
            _orderProductRepository = new GenericRepository <OrderProduct>();

            _userManager = userManager;

            // Services
            _orderProductService = new OrderProductService();
        }
        public async Task CurrentCountOrderProductsByUserId(string userId)
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                          .Options;

            var dbContext = new ApplicationDbContext(options);

            var repository = new EfDeletableEntityRepository <OrderProduct>(dbContext);
            var service    = new OrderProductService(repository);

            var orderProduct1 = new OrderProduct
            {
                ProductId = 1,
                CreatorId = userId,
                Quantity  = 1,
                Price     = 10,
                Status    = OrderProductStatus.Active,
            };

            var orderProduct2 = new OrderProduct
            {
                ProductId = 2,
                CreatorId = userId,
                Quantity  = 1,
                Price     = 5,
                Status    = OrderProductStatus.Active,
            };

            var orderProduct3 = new OrderProduct
            {
                ProductId = 3,
                CreatorId = userId,
                Quantity  = 1,
                Price     = 5,
                Status    = OrderProductStatus.Completed,
            };
            await repository.AddAsync(orderProduct1);

            await repository.AddAsync(orderProduct2);

            await repository.AddAsync(orderProduct3);

            await repository.SaveChangesAsync();

            var count = service.CurrentCountOrderProductsByUserId(userId);

            Assert.Equal(2, count);
        }
Пример #9
0
        public async Task GetLatestOrder(string userId)
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                          .Options;

            var dbContext = new ApplicationDbContext(options);

            var orderProductsRepository = new EfDeletableEntityRepository <OrderProduct>(dbContext);
            var orderProductsService    = new OrderProductService(orderProductsRepository);

            var orderProduct1 = new OrderProduct
            {
                CreatorId = userId,
                ProductId = 1,
                Quantity  = 1,
                Price     = 7m,
                Status    = OrderProductStatus.Active,
            };

            var orderProduct2 = new OrderProduct
            {
                CreatorId = userId,
                ProductId = 2,
                Quantity  = 1,
                Price     = 5m,
                Status    = OrderProductStatus.Active,
            };

            await orderProductsRepository.AddAsync(orderProduct1);

            await orderProductsRepository.AddAsync(orderProduct2);

            await orderProductsRepository.SaveChangesAsync();

            var ordersRepository = new EfDeletableEntityRepository <Order>(dbContext);
            var ordersService    = new OrderService(ordersRepository, orderProductsService);

            await ordersService.CreateOrderAsync(userId, "ul.Tintyava 15");

            var completedOrder = ordersService.GetLatestOrder(userId);

            Assert.Equal(completedOrder.Price, ordersRepository.All().Where(x => x.CreatorId == userId).FirstOrDefault().Price);
        }
        public async Task CreateOrderProduct()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                          .Options;

            var dbContext = new ApplicationDbContext(options);

            var repository = new EfDeletableEntityRepository <OrderProduct>(dbContext);
            var service    = new OrderProductService(repository);

            var product = new Product
            {
                Id    = 1,
                Name  = "Caffe",
                Price = 7m,
            };

            await service.CreateOrderProductAsync(product.Id, "xxx", 7m, 2);

            Assert.Equal(1, repository.All().Count());
            Assert.Equal(14, repository.All().FirstOrDefault().Price); // check price
        }
Пример #11
0
 public OrderProductsController(DataContext context)
 {
     _context             = context;
     _orderProductService = new OrderProductService(_context);
 }