Example #1
0
        public static IPostService CreatePostService(Container parentContainer, Container configurationContainer)
        {
            var container = new Container();

            var config = configurationContainer.GetInstance <INewsFeedConfiguration>();

            ICacheService <PostId, Post> postCache = CacheServiceBuilder <PostId, Post> .CreateService(config.PostInvalidationTime,
                                                                                                       CacheItemPriority.NotRemovable);

            ICacheService <string, IEnumerable <PostSummary> > postSummaryCache =
                CacheServiceBuilder <string, IEnumerable <PostSummary> > .CreateService(config.SummariesInvalidationTime,
                                                                                        CacheItemPriority.Default);

            container.RegisterInstance(SourceProvider.GetPostSource(parentContainer));

            container.Register <IPostService, PostServiceCache>();

            container.RegisterInstance(postCache);

            container.RegisterInstance(postSummaryCache);

            container.Verify();

            return(container.GetInstance <IPostService>());
        }
        public static ICommentService CreateCommentService(Container parentContainer, Container configurationContainer)
        {
            var container = new Container();

            container.RegisterInstance(SourceProvider.CommentSource(parentContainer));

            var config = configurationContainer.GetInstance <INewsFeedConfiguration>();

            ICacheService <PostId, IEnumerable <Comment> > cache =
                CacheServiceBuilder <PostId, IEnumerable <Comment> > .CreateService(config.CommentInvalidationTime, CacheItemPriority.Default);

            container.Register <ICommentService, CommentService>();

            container.RegisterInstance(cache);

            container.Verify();

            return(container.GetInstance <ICommentService>());
        }
Example #3
0
        public static IUserService CreateUserService(Container parentContainer, Container configurationContainer)
        {
            var container = new Container();

            IUserSource userSource = SourceProvider.GetUserSource(parentContainer);

            var config = configurationContainer.GetInstance <INewsFeedConfiguration>();

            ICacheService <string, IEnumerable <User> > cache =
                CacheServiceBuilder <string, IEnumerable <User> > .CreateService(config.UserInvalidationTime, CacheItemPriority.NotRemovable);

            container.RegisterInstance(userSource);

            container.Register <IUserService, UserService>();

            container.RegisterInstance(cache);

            container.Verify();

            return(container.GetInstance <IUserService>());
        }