public async Task <Unit> Handle(UpdateCustomerCommand request, CancellationToken cancellationToken)
        {
            var entity = await _context.Customers
                         .SingleAsync(c => c.CustomerId == request.Id, cancellationToken);

            if (entity == null)
            {
                throw new NotFoundException(nameof(Customers), request.Id);
            }

            entity.Address      = request.Address;
            entity.City         = request.City;
            entity.CompanyName  = request.CompanyName;
            entity.ContactName  = request.ContactName;
            entity.ContactTitle = request.ContactTitle;
            entity.Country      = request.Country;
            entity.Fax          = request.Fax;
            entity.Phone        = request.Phone;
            entity.PostalCode   = request.PostalCode;

            _context.Customers.Update(entity);

            await _context.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
Ejemplo n.º 2
0
        public async Task <Unit> Handle(CreateCustomerCommand request, CancellationToken cancellationToken)
        {
            var entity = new Customers
            {
                CustomerId   = request.Id,
                Address      = request.Address,
                City         = request.City,
                CompanyName  = request.CompanyName,
                ContactName  = request.ContactName,
                ContactTitle = request.ContactTitle,
                Country      = request.Country,
                Fax          = request.Fax,
                Phone        = request.Phone,
                PostalCode   = request.PostalCode
            };

            _context.Customers.Add(entity);

            await _context.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
Ejemplo n.º 3
0
        public async Task <Unit> Handle(DeleteCustomerCommand request, CancellationToken cancellationToken)
        {
            var entity = await _context.Customers
                         .FindAsync(request.Id);

            if (entity == null)
            {
                throw new NotFoundException(nameof(Customers), request.Id);
            }

            var hasOrders = _context.Orders.Any(o => o.CustomerId == entity.CustomerId);

            if (hasOrders)
            {
                throw new DeleteFailureException(nameof(Customers), request.Id, "There are existing orders associated with this customer.");
            }

            _context.Customers.Remove(entity);

            await _context.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }