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 }); } }