public async Task ShouldDelete_Employee_UsingRepository() { var employee = await _employeeRepo.GetByIdAsync(new Guid("e6b86ea3-6479-48a2-b8d4-54bd6cbbdbc5")); Assert.NotNull(employee); _employeeRepo.Delete(employee); await _unitOfWork.Commit(); var result = await _employeeRepo.GetByIdAsync(new Guid("e6b86ea3-6479-48a2-b8d4-54bd6cbbdbc5")); Assert.Null(result); }
public static async Task Execute(DeleteEmployeeInfo model, IEmployeeAggregateRepository repo, IUnitOfWork unitOfWork) { var employee = await repo.GetByIdAsync(model.Id) ?? throw new InvalidOperationException($"An employee with id '{model.Id}' could not be found!"); if (employee.Addresses().Count > 0) { foreach (Address address in employee.Addresses()) { employee.DeleteAddress(address.Id); } } if (employee.ContactPersons().Count > 0) { foreach (ContactPerson contact in employee.ContactPersons()) { employee.DeleteContactPerson(contact.Id); } } repo.Delete(employee); await unitOfWork.Commit(); }