Пример #1
0
        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);
        }
Пример #2
0
        /// <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));
            }
        }