public async Task <uint> Handle(CreatePurchaseTermCommand request, CancellationToken cancellationToken)
        {
            VendorPurchaseTerm purchaseTerm = _Mapper.Map <CreatePurchaseTermCommand, VendorPurchaseTerm> (request);

            await _database.VendorPurchaseTerm.AddAsync(purchaseTerm);

            await _database.SaveAsync();

            return(purchaseTerm.Id);
        }
        public async Task <uint> Handle(NewVendorPurchaseTermDto request, CancellationToken cancellationToken)
        {
            var vendor = _database.Vendor
                         .AsNoTracking()
                         .FirstOrDefaultAsync(v => v.Id == request.VendorId);

            if (vendor == null)
            {
                throw new NotFoundException(nameof(Vendor), request.VendorId);
            }
            var item = await _database.Item
                       .AsNoTracking()
                       .FirstOrDefaultAsync(i => i.Id == request.ItemId);

            if (item == null)
            {
                throw new NotFoundException(nameof(Item), request.ItemId);
            }

            VendorPurchaseTerm newTerm = new VendorPurchaseTerm()
            {
                VendorId        = request.VendorId,
                ItemId          = request.ItemId,
                VendorProductId = request.VendorProductId,
                MinimumQuantity = request.MinimumQuantity,
                Leadtime        = request.Leadtime,
                Priority        = request.Priority,
                UnitPrice       = request.UnitPrice
            };

            _database.VendorPurchaseTerm.Add(newTerm);

            await _database.SaveAsync();

            return(newTerm.Id);
        }
 public static PurchaseTermViewModel Create(VendorPurchaseTerm purchaseTerm)
 {
     return(Projection.Compile().Invoke(purchaseTerm));
 }