public async Task <int> Handle(AddProductCommand request, CancellationToken cancellationToken)
        {
            if (request is null)
            {
                throw new InvalidNullInputException(nameof(request));
            }

            var existingProduct = await _dbContext.Set <Product>().FirstOrDefaultAsync(a => a.Name == request.Name, cancellationToken);

            if (existingProduct != null)
            {
                throw new ExistingRecordException("This Product has been added");
            }

            var product = new Product
            {
                Name  = request.Name,
                Price = request.Price
            };

            await _dbContext.Set <Product>().AddAsync(product, cancellationToken);

            await _dbContext.SaveChangesAsync(cancellationToken);

            _logger.LogInformation("Product Inserted", product);

            return(product.Id);
        }
コード例 #2
0
 public Repository(CleanArchWriteDbContext dbContext)
 {
     DbContext = dbContext;
     Entities  = DbContext.Set <TEntity>();
 }