public override void PostInitialize() { var memberServiceDecorator = _container.Resolve<MemberServiceDecorator>(); Func<CustomerRepositoryImpl> customerRepositoryFactory = () => new CustomerRepositoryImpl(_connectionStringName, new EntityPrimaryKeyGeneratorInterceptor(), _container.Resolve<AuditableInterceptor>()); var commerceMembersService = new CommerceMembersServiceImpl(customerRepositoryFactory, _container.Resolve<IDynamicPropertyService>(), _container.Resolve<ISecurityService>(), memberServiceDecorator, _container.Resolve<IEventPublisher<MemberChangingEvent>>()); memberServiceDecorator.RegisterMemberTypes(typeof(Organization), typeof(Contact), typeof(Vendor), typeof(Employee)) .WithService(commerceMembersService) .WithSearchService(commerceMembersService); //Next lines allow to use polymorph types in API controller methods var formatters = GlobalConfiguration.Configuration.Formatters; formatters.JsonFormatter.SerializerSettings.Converters.Add(new PolymorphicMemberJsonConverter(memberServiceDecorator)); base.PostInitialize(); }
public MemberSearchServiceDecorator(CommerceMembersServiceImpl memberSearchService, MemberIndexedSearchService memberIndexedSearchService) { _memberSearchService = memberSearchService; _memberIndexedSearchService = memberIndexedSearchService; }