/// <summary>
        /// Synchronize lead columns, which are corresponded with qualified lead contact.
        /// </summary>
        /// <param name="lead">Lead entity.</param>
        /// <param name="modifiedColumnValues">Lead modified columns.</param>
        public void SynchronizeContactData(Entity lead, EntityColumnValueCollection modifiedColumnValues)
        {
            Guid qualifiedContactId = lead.GetTypedColumnValue <Guid>("QualifiedContactId");

            if (qualifiedContactId != Guid.Empty)
            {
                List <KeyValuePair <string, object> > newContactValues = GetContactColumnValues(modifiedColumnValues);
                if (newContactValues.Any())
                {
                    UpdateQualifiedContact(qualifiedContactId, newContactValues);
                }
            }
        }
        public static bool IsChangeInteresting <Entity>(this Entity entity, string[] InterestingColumns, EntityColumnValueCollection entityColumnValues = null)
            where Entity : Terrasoft.Core.Entities.Entity
        {
            bool result = false;
            IEnumerable <EntityColumnValue> changedColumns;

            if (entityColumnValues != null)
            {
                changedColumns = entityColumnValues;
            }
            else
            {
                changedColumns = entity.GetChangedColumnValues();
            }

            foreach (EntityColumnValue column in changedColumns)
            {
                if (Array.IndexOf(InterestingColumns, column.Name) > -1)
                {
                    return(true);
                }
            }
            return(result);
        }