예제 #1
0
        public void Modify_Post()
        {
            InitializeInMemoryDbContext(options =>
            {
                using (var uowManager = new EfCoreUnitOfWorkManager())
                {
                    var repository = new PostRepository(new BloggingDbContext(options));

                    repository.Count().ShouldBe(2);

                    var uow = new EfCoreUnitOfWork(
                        ((IRepositoryWithDbContext)repository).GetDbContext()
                        );

                    uowManager.Register(uow);

                    var post = repository.All().First();

                    post.ShouldNotBeNull();

                    var postId = post.Id;

                    post.Title = "已修改";

                    repository.Modify(post);

                    uowManager.Commit();

                    repository.Single(s => s.Id.Equals(postId))
                    .Title
                    .ShouldBe("已修改");
                }
            });
        }
예제 #2
0
        public void Multiple_Operations()
        {
            InitializeInMemoryDbContext(options =>
            {
                using (var uowManager = new EfCoreUnitOfWorkManager())
                {
                    var r1 = new PostRepository(new BloggingDbContext(options));
                    uowManager.Register(new EfCoreUnitOfWork(
                                            ((IRepositoryWithDbContext)r1).GetDbContext()
                                            ));

                    var r2 = new PostRepository(new BloggingDbContext(options));
                    uowManager.Register(new EfCoreUnitOfWork(
                                            ((IRepositoryWithDbContext)r2).GetDbContext()
                                            ));

                    var r3 = new EfCoreRepositoryBase <BloggingDbContext, Comment>(new BloggingDbContext(options));
                    uowManager.Register(new EfCoreUnitOfWork(
                                            ((IRepositoryWithDbContext)r3).GetDbContext()
                                            ));

                    var p1 = new Post
                    {
                        Title = "r1 新增 Post"
                    };
                    r1.Create(p1);

                    var p2   = r2.All().First();
                    p2.Title = "r2 修改 Post";
                    r2.Modify(p2);

                    var c3Id = r3.All().First().Id;
                    r3.Remove(c3Id);

                    uowManager.Commit();

                    var r4 = new PostRepository(new BloggingDbContext(options));

                    r4.All().Count().ShouldBe(3);
                    r4.Single(s => s.Id.Equals(p2.Id)).Title.ShouldBe("r2 修改 Post");

                    var r5 = new EfCoreRepositoryBase <BloggingDbContext, Comment>(new BloggingDbContext(options));
                    r5.SingleOrDefault(s => s.Id == c3Id).ShouldBeNull();
                }
            });
        }
예제 #3
0
        public JsonResult GetPostList()
        {
            var postList = _postRepository.All().ToList();

            List <PostModel> objList = new List <PostModel>();

            foreach (var p in postList)
            {
                CategoryModel category = new CategoryModel
                {
                    Id          = p.Category.Id,
                    Name        = p.Category.Name,
                    UrlSlug     = p.Category.UrlSlug,
                    Description = p.Category.Description
                };

                List <TagModel> tagList = new List <TagModel>();

                foreach (var t in p.PostTagMaps)
                {
                    //t.
                }

                PostModel obj = new PostModel
                {
                    Id               = p.Id,
                    Title            = p.Title,
                    ShortDescription = p.ShortDescription,
                    Description      = p.Description,
                    Meta             = p.Meta,
                    UrlSlug          = p.UrlSlug,
                    Published        = p.Published,
                    PostedOn         = p.PostedOn,
                    Modified         = p.Modified,
                    CategoryId       = p.CategoryID,
                    Category         = category
                };
            }
            return(Json(""));
        }
예제 #4
0
 public IEnumerable <Post> GetAll()
 {
     return(_repository.All());
 }
예제 #5
0
 public WidgetViewModel(PostRepository postRepository, TagRepository tagRepository, CategoryRepository categoryRepository)
 {
     Categories  = categoryRepository.All().ToList();
     Tags        = tagRepository.All().ToList();
     LatestPosts = postRepository.All().ToList();
 }