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); }
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); }
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); }