Guest User

Untitled

a guest
May 21st, 2018
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. if (!ctx.Posts.Any()) {
  2. Tag tag = new Tag() {
  3. Name = "Test1"
  4. };
  5.  
  6. User user = new User() {
  7. UserName = "TestUser",
  8. Email = "test1@test1.bg",
  9. Password = Extensions.PasswordHash("abv123456", config["AppSettings:PasswordSalt"]),
  10. Role = UserRoles.Member
  11. };
  12.  
  13. ctx.Users.Add(user);
  14.  
  15. Post post = new Post() {
  16. Title = "Test Post",
  17. Description = "Description post test",
  18. Likes = 5,
  19. User = user,
  20. CreateOn = DateTime.Now,
  21. LastEditOn = DateTime.Now
  22. };
  23.  
  24. PostTag posttags = new PostTag() {
  25. Post = post,
  26. Tag = tag
  27. };
  28.  
  29. ctx.PostTag.Add(posttags);
  30. ctx.SaveChanges();
  31. };
  32.  
  33. public IActionResult GetAllPost() {
  34. var posts = _ctx.Posts
  35. .Include(u => u.User)
  36. .ToList();
  37.  
  38. return Json(Newtonsoft.Json.JsonConvert.SerializeObject(posts));
  39. }
  40.  
  41. services.AddMvc().AddJsonOptions(opts => {
  42. opts.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
  43. });
  44.  
  45. protected override void OnModelCreating(ModelBuilder modelBuilder) {
  46. // set unique email and username
  47. modelBuilder.Entity<User>()
  48. .HasIndex(u => new { u.Email, u.UserName })
  49. .IsUnique();
  50.  
  51. // set unique tag name
  52. modelBuilder.Entity<Tag>()
  53. .HasIndex(t => t.Name)
  54. .IsUnique();
  55.  
  56. modelBuilder.Entity<Post>()
  57. .HasOne(p => p.User)
  58. .WithMany(u => u.Posts);
  59.  
  60. modelBuilder.Entity<User>()
  61. .HasMany(u => u.Comments)
  62. .WithOne(u => u.User);
  63.  
  64. // post tag many-to-many rel
  65. modelBuilder.Entity<PostTag>()
  66. .HasKey(pt => new { pt.PostUID, pt.TagUID });
  67.  
  68. modelBuilder.Entity<PostTag>()
  69. .HasOne(pt => pt.Post)
  70. .WithMany(p => p.PostTags)
  71. .HasForeignKey(pt => pt.PostUID);
  72.  
  73. modelBuilder.Entity<PostTag>()
  74. .HasOne(pt => pt.Tag)
  75. .WithMany(p => p.PostTags)
  76. .HasForeignKey(pt => pt.TagUID);
  77. }
  78.  
  79. return Json(Newtonsoft.Json.JsonConvert.SerializeObject(posts));
  80.  
  81. return Json(posts);
Add Comment
Please, Sign In to add comment