private void EmployeeLeftDomainEventHandler(EmployeeLeftDomainEvent @event) { _employeeRepository.Save(@event.Source); var employeeLeft = new EmployeeLeft { Id = @event.Source.Id.Value, Left = @event.Source.Left, DepartmentId = @event.Source.Department != null ? @event.Source.Department.Id : default(Guid?) }; _bus.Publish(employeeLeft); }
/// <summary> /// Callback for the <see cref = "LocationComponent.EntityLeft">EntityLeft</see> event /// of the company's <see cref = "LocationComponent">LocationComponent</see><br/> /// Invokes the <see cref = "CartLeft">CartLeft</see> or <see cref = "EmployeeLeft">EmployeeLeft</see> event. /// </summary> public void OnEntityLeft(object sender, EntityRegistryComponent.EntityEventArgs e) { var employee = e.Entity.GetComponent <EmployeeComponent>(); var cart = e.Entity.GetComponent <CartComponent>(); if (IsEmployed(employee)) { this.Log($"Employee {employee} left company"); EmployeeLeft?.Invoke(this, new EmployeeLeftEventArgs(employee)); } if (IsEmployed(cart)) { this.Log($"Cart {cart} left company"); CartLeft?.Invoke(this, new CartLeftEventArgs(cart)); } }