Signum.Engine.DiffIndex.ColumnsChanged C# (CSharp) Method

ColumnsChanged() private method

private ColumnsChanged ( DiffTable dif, Index mix ) : bool
dif DiffTable
mix Signum.Engine.Maps.Index
return bool
        bool ColumnsChanged(DiffTable dif, Index mix)
        {
            if (this.Columns.Count != mix.Columns.Length)
                return true;

            var difColumns = this.Columns.Select(cn => dif.Columns.Values.SingleOrDefault(dc => dc.Name == cn)).ToList();

            var perfect = difColumns.ZipOrDefault(mix.Columns, (dc, mc) => dc != null && mc != null && dc.ColumnEquals(mc, ignorePrimaryKey: true)).All(a => a);

            return !perfect;
        }