예제 #1
0
        public async Task <ProductDto> CreateProductAsync(ProductDto product, CancellationToken cancellationToken = default)
        {
            var add = _mapper.Map <Product>(product);

            _shopContext.Products.Add(add);
            await _shopContext.SaveChangesAsync(cancellationToken);

            return(_mapper.Map <ProductDto>(product));
        }
예제 #2
0
        /// <inheritdoc/>
        public async Task CreateShopTypeAsync(ShopType shopType)
        {
            var createShopType = Mapper.Map <ShopType, UpdateShopTypeRequest>(shopType);
            var dbShopType     = Mapper.Map <UpdateShopTypeRequest, DbShopType>(createShopType);

            _context.ShopTypes.Add(dbShopType);

            await _context.SaveChangesAsync();
        }
예제 #3
0
        /// <inheritdoc/>
        public async Task SetStatusAsync(int shopId, bool deletedStatus)
        {
            var dbShops = await _context.Shops.Where(s => s.Id == shopId).ToArrayAsync();

            if (dbShops.Length == 0)
            {
                throw new RequestedResourceNotFoundException();
            }

            var dbShop = dbShops[0];

            if (dbShop.IsDeleted != deletedStatus)
            {
                dbShop.IsDeleted = deletedStatus;
                await _context.SaveChangesAsync();
            }
        }
예제 #4
0
        public async Task <CommandResult <CreateCommandResult <Guid> > > Handle(CreateProductCommand request, CancellationToken cancellationToken)
        {
            var product = _mapper.Map <CreateProductCommand, Product>(request, Product.Create());
            var saved   = await _context.Products.AddAsync(product, cancellationToken);

            await _context.SaveChangesAsync(cancellationToken);

            return(CommandResult <CreateCommandResult <Guid> > .Ok(new CreateCommandResult <Guid>(saved.Entity.Id)));
        }
        public async Task <CommandResult <CreateCommandResult <Guid> > > Handle(CreateOrderCommand request, CancellationToken cancellationToken)
        {
            var order = Order.Create();
            var plis  = request.Products.Select(p => ProductLineItem.Create(order.Id, p.Id, p.Quantity)).ToList();

            await _context.Orders.AddAsync(order, cancellationToken);

            await _context.ProductLineItems.AddRangeAsync(plis, cancellationToken);

            await _context.SaveChangesAsync(cancellationToken);

            return(await Task.FromResult(CommandResult <CreateCommandResult <Guid> > .Ok(new CreateCommandResult <Guid>(order.Id))));
        }
예제 #6
0
        public async Task <Order> AddOrder([FromUri] InOrder order)
        {
            //TODO сделать добавление юзера, если его нету в бд
            Order dbOrder = _mapperService.Map(order);

            foreach (var productsId in order.Products)
            {
                var productInstances = await _context.ProductInstances
                                       .Where(o => o.ProductId == productsId.Key && o.OrderId == null)
                                       .Take(productsId.Value).ToListAsync();

                productInstances.ForEach(o => { o.OrderId = dbOrder.Id; o.Order = dbOrder; });
            }

            dbOrder.User = await _context.Users.FirstAsync(u => u.Username == order.Username);

            var output = _context.Orders.Add(dbOrder);
            await _context.SaveChangesAsync();

            return(output);
        }