示例#1
0
        public void UpdateEntity(Ticket ticket, Entity entity, int accountTypeId, int accountId, string entityCustomData)
        {
            var currentEntity = ticket.TicketEntities.SingleOrDefault(x => x.EntityTypeId == entity.EntityTypeId);
            var currentEntityId = currentEntity != null ? currentEntity.EntityId : 0;
            var newEntityName = entity.Name;
            var oldEntityName = currentEntity != null ? currentEntity.EntityName : "";
            var newEntityData = entityCustomData;
            var oldEntityData = currentEntity != null ? currentEntity.EntityCustomData : "";

            if (currentEntity != null && currentEntity.EntityId != entity.Id)
            {
                var entityType = _cacheService.GetEntityTypeById(currentEntity.EntityTypeId);
                _applicationState.NotifyEvent(RuleEventNames.EntityUpdated, new
                {
                    Ticket = ticket,
                    EntityTypeId = currentEntity.EntityTypeId,
                    EntityId = currentEntity.EntityId,
                    EntityTypeName = entityType.Name,
                    OpenTicketCount = GetOpenTicketCount(currentEntity.EntityId, ticket.Id)
                });
            }

            ticket.UpdateEntity(entity.EntityTypeId, entity.Id, entity.Name, accountTypeId, accountId, entityCustomData);

            if (currentEntityId != entity.Id || oldEntityName != newEntityName || newEntityData != oldEntityData)
            {
                var entityType = _cacheService.GetEntityTypeById(entity.EntityTypeId);
                _applicationState.NotifyEvent(RuleEventNames.TicketEntityChanged,
                    new
                    {
                        Ticket = ticket,
                        Entity = entity,
                        EntityTypeId = entity.EntityTypeId,
                        EntityId = entity.Id,
                        EntityTypeName = entityType.Name,
                        OldEntityName = oldEntityName,
                        NewEntityName = newEntityName,
                        OrderCount = ticket.Orders.Count,
                        OldCustomData = oldEntityData,
                        CustomData = newEntityData
                    });
            }
        }