protected override void BuildCore(TypePair typePair, BindingConfig bindingConfig) { var members = MemberBuilder.Build(typePair).Where(x => !x.Ignored).ToList(); var equalMembers = new List <MappingMember>(); var mappingMembers = new List <MappingMember>(); var refMembers = new List <MappingMember>(); var collectionMembers = new List <MappingMember>(); var expressionMembers = new List <MappingMember>(); foreach (var item in members) { if (item.IsExpressionMapping) { expressionMembers.Add(item); } else { var memberTypePair = TypePair.Create(item.Source.GetMemberType(), item.Target.GetMemberType()); if (memberTypePair.IsEqualTypes) { equalMembers.Add(item); } else if (memberTypePair.IsBaseTypes) { mappingMembers.Add(item); } else if (config.ReferencePropertyHandle != ReferencePropertyHandle.Ignore) { if (memberTypePair.IsEnumerableTypes) { collectionMembers.Add(item); } else { refMembers.Add(item); } } } } var func = CreateMapper(typePair, equalMembers, mappingMembers); MapperCache.Add(typePair, func); var action = CreateMapperRef(typePair, refMembers, collectionMembers, expressionMembers); if (action != null) { MapperRefCache.Add(typePair, action); } }
public string Serialize(Contract contract, string template, List <Contract> contracts) { var nodes = NodeHelper.GetMembers(contract).ToList(); if (!nodes.Any()) { return(template.Replace("{{Members}}", string.Empty)); } var builder = new MemberBuilder(nodes); template = template.Replace("{{Members}}", builder.Build()); return(template); }
protected override void OnModelCreating(ModelBuilder builder) { MessageBuilder.Build(builder); UserBuilder.Build(builder); ConversationBuilder.Build(builder); FriendsRequestBuilder.Build(builder); MessageBuilder.Build(builder); UserContactBuilder.Build(builder); ContactBuilder.Build(builder); NotificationBuilder.Build(builder); NotificationTypeBuilder.Build(builder); ParticipantBuilder.Build(builder); FileStorageBuilder.Build(builder); ReadReceiptBuilder.Build(builder); MemberBuilder.Build(builder); }