public CommerceMembersServiceImplUnitTests()
        {
            _repositoryMock             = new Mock <ICustomerRepository>();
            _mockUnitOfWork             = new Mock <IUnitOfWork>();
            _eventPublisherMock         = new Mock <IEventPublisher>();
            _dynamicPropertyServiceMock = new Mock <IDynamicPropertyService>();
            _repositoryMock.Setup(ss => ss.UnitOfWork).Returns(_mockUnitOfWork.Object);
            _repositoryFactory       = () => _repositoryMock.Object;
            _platformMemoryCacheMock = new Mock <IPlatformMemoryCache>();
            _сacheEntryMock          = new Mock <ICacheEntry>();
            _userSearchMock          = new Mock <IUserSearchService>();
            _сacheEntryMock.SetupGet(c => c.ExpirationTokens).Returns(new List <IChangeToken>());
            _commerceMembersServiceImpl = new CommerceMembersServiceImpl(_repositoryFactory, _eventPublisherMock.Object, _dynamicPropertyServiceMock.Object, _platformMemoryCacheMock.Object, _userSearchMock.Object);

            AbstractTypeFactory <Member> .RegisterType <Organization>().MapToType <OrganizationEntity>();

            AbstractTypeFactory <Member> .RegisterType <Contact>().MapToType <ContactEntity>();

            AbstractTypeFactory <Member> .RegisterType <Vendor>().MapToType <VendorEntity>();

            AbstractTypeFactory <Member> .RegisterType <Employee>().MapToType <EmployeeEntity>();

            AbstractTypeFactory <MemberEntity> .RegisterType <ContactEntity>();

            AbstractTypeFactory <MemberEntity> .RegisterType <OrganizationEntity>();

            AbstractTypeFactory <MemberEntity> .RegisterType <VendorEntity>();

            AbstractTypeFactory <MemberEntity> .RegisterType <EmployeeEntity>();
        }
Example #2
0
        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();
        }