Exemple #1
0
        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);
        }
Exemple #2
0
        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();
        }