Ejemplo n.º 1
0
        public override void Modify(DocumentMapping mapping, MemberInfo member)
        {
            var membersGroupedByIndexName = member.DeclaringType.GetMembers()
                                            .Where(mi => mi.GetCustomAttributes <UniqueIndexAttribute>().Any())
                                            .Select(mi => new
            {
                Member           = mi,
                IndexInformation = mi.GetCustomAttributes <UniqueIndexAttribute>().First()
            })
                                            .GroupBy(m => m.IndexInformation.IndexName ?? m.Member.Name)
                                            .Where(mg => mg.Any(m => m.Member == member))
                                            .Single();

            mapping.AddUniqueIndex(
                membersGroupedByIndexName.Select(mg => new[] { mg.Member }).ToArray(),
                IndexType,
                IndexName,
                IndexMethod);
        }