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>()); }
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>()); }