Skip to content

Commit c4f6327

Browse files
maureiwisepotato
authored andcommitted
v4.0.0-alpha4 (#619)
* Fix/deviating dbset name (#603) * test: expose dbset name bug * fix: deviating dbset name * chore: add launchSettings.json to gitignore * chore: delete launchSettings.json from git * Fix/pagesize (#601) * feat: new startup for test * chore: rename startup class * test: reproduce #599 in test * fix: zero division error * chore: remove redundant DefaultPageSize on IPageService * chore: update .gitignore * fix: typo LoaDatabaseValues (#608) * fix: typo * fix: typo in fix of typo * chore: enable sql logging in JsonApiDotNetCoreExample * Acceptance tests EF inheritance (#610) * chore: create inheritance model + controller * test: create and patch acceptance test * chore: close issue * Improve usability RequestSerializer (#613) * feat: remove inability to use request serializer with unknown type at runtime * fix: typo in test setup * chore: spacing * fix: add IResourceQueryService and IResourceCmdService to DI container in application builder * chore: update comments IRequestSerializer * Move EF core related building to extension methods (#616) * feat: remove inability to use request serializer with unknown type at runtime * fix: typo in test setup * chore: spacing * fix: add IResourceQueryService and IResourceCmdService to DI container in application builder * chore: update comments IRequestSerializer * chore: moved ef core related building to extension methods * chore: spacing, rename file * refactor: remove need for internal modifier * refactor: minor refactor id type retrieval * Hooks discovery detection of implemented hooks issue (#617) * fix: discovery issue related to assemblies * fix: LoaDatabaseValue typo * fix: set EnableResourceHooks to true by default * chore: add comment in code in hooksdiscovery * fix: use IServiceProvider instead of IScopedServiceProvider * fix: discovery unit test with ServiceProvider instead of ScopedServiceProvider * refactor: TResource instead of TEntity * chore: process PR review * chore: move comment to separate line (stylecop) * feat: use camelCase as default (#618) * feat: use camelCase as default * refactor: massive replace all to replace kebab-case with camelCase default * chore: fix remaining unit tests * fix: fix remaining JsonApiDotNetCoreExampleTests * feat: introduce proper usage of WebApplicationFactory in KebabCaseFormatterTests * fix: remaining functional tests * fix: minor changes PR review * fix: camelCase revert in comments * fix: camelCase revert in comments * fix: camelCase revert in comments * fix: camelCase revert in comments
1 parent 7b8250b commit c4f6327

File tree

113 files changed

+1385
-1311
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+1385
-1311
lines changed

benchmarks/Serialization/JsonApiDeserializer_Benchmarks.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public JsonApideserializer_Benchmarks() {
5858
public object DeserializeSimpleObject() => _jsonApideserializer.Deserialize<SimpleType>(Content);
5959

6060
private class SimpleType : Identifiable {
61-
[Attr("name")]
61+
[Attr]
6262
public string Name { get; set; }
6363
}
6464
}

src/Examples/JsonApiDotNetCoreExample/Controllers/CamelCasedModelsController.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66

77
namespace JsonApiDotNetCoreExample.Controllers
88
{
9-
public class CamelCasedModelsController : JsonApiController<CamelCasedModel>
9+
public class KebabCasedModelsController : JsonApiController<KebabCasedModel>
1010
{
11-
public CamelCasedModelsController(
11+
public KebabCasedModelsController(
1212
IJsonApiOptions jsonApiOptions,
13-
IResourceService<CamelCasedModel> resourceService,
13+
IResourceService<KebabCasedModel> resourceService,
1414
ILoggerFactory loggerFactory)
1515
: base(jsonApiOptions, resourceService, loggerFactory)
1616
{ }

src/Examples/JsonApiDotNetCoreExample/Controllers/TodoItemsCustomController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
namespace JsonApiDotNetCoreExample.Controllers
1212
{
13-
[DisableRoutingConvention, Route("custom/route/todo-items")]
13+
[DisableRoutingConvention, Route("custom/route/todoItems")]
1414
public class TodoItemsCustomController : CustomJsonApiController<TodoItem>
1515
{
1616
public TodoItemsCustomController(

src/Examples/JsonApiDotNetCoreExample/Controllers/UsersController.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,14 @@ public UsersController(
1515
: base(jsonApiOptions, resourceService, loggerFactory)
1616
{ }
1717
}
18+
19+
public class SuperUsersController : JsonApiController<SuperUser>
20+
{
21+
public SuperUsersController(
22+
IJsonApiOptions jsonApiOptions,
23+
IResourceService<SuperUser> resourceService,
24+
ILoggerFactory loggerFactory)
25+
: base(jsonApiOptions, resourceService, loggerFactory)
26+
{ }
27+
}
1828
}

src/Examples/JsonApiDotNetCoreExample/Data/AppDbContext.cs

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@ public class AppDbContext : DbContext
99
public DbSet<Passport> Passports { get; set; }
1010
public DbSet<Person> People { get; set; }
1111
public DbSet<TodoItemCollection> TodoItemCollections { get; set; }
12-
public DbSet<CamelCasedModel> CamelCasedModels { get; set; }
12+
public DbSet<KebabCasedModel> KebabCasedModels { get; set; }
1313
public DbSet<Article> Articles { get; set; }
14-
public DbSet<Author> Authors { get; set; }
14+
public DbSet<Author> AuthorDifferentDbContextName { get; set; }
1515
public DbSet<NonJsonApiResource> NonJsonApiResources { get; set; }
1616
public DbSet<User> Users { get; set; }
17+
public DbSet<SuperUser> SuperUsers { get; set; }
1718
public DbSet<PersonRole> PersonRoles { get; set; }
1819
public DbSet<ArticleTag> ArticleTags { get; set; }
1920
public DbSet<IdentifiableArticleTag> IdentifiableArticleTags { get; set; }
@@ -23,6 +24,8 @@ public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
2324

2425
protected override void OnModelCreating(ModelBuilder modelBuilder)
2526
{
27+
modelBuilder.Entity<SuperUser>().HasBaseType<User>();
28+
2629
modelBuilder.Entity<TodoItem>()
2730
.Property(t => t.CreatedDate).HasDefaultValueSql("CURRENT_TIMESTAMP").IsRequired();
2831

@@ -43,18 +46,18 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
4346
.HasKey(bc => new { bc.ArticleId, bc.TagId });
4447

4548
modelBuilder.Entity<Person>()
46-
.HasOne(t => t.StakeHolderTodo)
49+
.HasOne(t => t.StakeHolderTodoItem)
4750
.WithMany(t => t.StakeHolders)
48-
.HasForeignKey(t => t.StakeHolderTodoId)
51+
.HasForeignKey(t => t.StakeHolderTodoItemId)
4952
.OnDelete(DeleteBehavior.Cascade);
5053

5154
modelBuilder.Entity<TodoItem>()
52-
.HasOne(t => t.DependentTodoItem);
55+
.HasOne(t => t.DependentOnTodo);
5356

5457
modelBuilder.Entity<TodoItem>()
55-
.HasMany(t => t.ChildrenTodoItems)
56-
.WithOne(t => t.ParentTodoItem)
57-
.HasForeignKey(t => t.ParentTodoItemId);
58+
.HasMany(t => t.ChildrenTodos)
59+
.WithOne(t => t.ParentTodo)
60+
.HasForeignKey(t => t.ParentTodoId);
5861

5962
modelBuilder.Entity<Passport>()
6063
.HasOne(p => p.Person)
@@ -63,14 +66,14 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
6366
.OnDelete(DeleteBehavior.SetNull);
6467

6568
modelBuilder.Entity<TodoItem>()
66-
.HasOne(p => p.ToOnePerson)
67-
.WithOne(p => p.ToOneTodoItem)
68-
.HasForeignKey<TodoItem>(p => p.ToOnePersonId);
69+
.HasOne(p => p.OneToOnePerson)
70+
.WithOne(p => p.OneToOneTodoItem)
71+
.HasForeignKey<TodoItem>(p => p.OneToOnePersonId);
6972

7073
modelBuilder.Entity<Person>()
71-
.HasOne(p => p.ToOneTodoItem)
72-
.WithOne(p => p.ToOnePerson)
73-
.HasForeignKey<TodoItem>(p => p.ToOnePersonId);
74+
.HasOne(p => p.OneToOneTodoItem)
75+
.WithOne(p => p.OneToOnePerson)
76+
.HasForeignKey<TodoItem>(p => p.OneToOnePersonId);
7477
}
7578
}
7679
}

src/Examples/JsonApiDotNetCoreExample/Models/Article.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ namespace JsonApiDotNetCoreExample.Models
66
{
77
public class Article : Identifiable
88
{
9-
[Attr("name")]
9+
[Attr]
1010
public string Name { get; set; }
1111

12-
[HasOne("author")]
12+
[HasOne]
1313
public Author Author { get; set; }
1414
public int AuthorId { get; set; }
1515

src/Examples/JsonApiDotNetCoreExample/Models/ArticleTag.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ public class ArticleTag
1515
public class IdentifiableArticleTag : Identifiable
1616
{
1717
public int ArticleId { get; set; }
18-
[HasOne("article")]
18+
[HasOne]
1919
public Article Article { get; set; }
2020

2121
public int TagId { get; set; }
22-
[HasOne("Tag")]
22+
[HasOne]
2323
public Tag Tag { get; set; }
2424

2525
public string SomeMetaData { get; set; }

src/Examples/JsonApiDotNetCoreExample/Models/Author.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ namespace JsonApiDotNetCoreExample.Models
55
{
66
public class Author : Identifiable
77
{
8-
[Attr("name")]
8+
[Attr]
99
public string Name { get; set; }
1010

11-
[HasMany("articles")]
11+
[HasMany]
1212
public List<Article> Articles { get; set; }
1313
}
1414
}

src/Examples/JsonApiDotNetCoreExample/Models/CamelCasedModel.cs renamed to src/Examples/JsonApiDotNetCoreExample/Models/KebabCasedModel.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22

33
namespace JsonApiDotNetCoreExample.Models
44
{
5-
[Resource("camelCasedModels")]
6-
public class CamelCasedModel : Identifiable
5+
public class KebabCasedModel : Identifiable
76
{
8-
[Attr("compoundAttr")]
7+
[Attr]
98
public string CompoundAttr { get; set; }
109
}
1110
}

src/Examples/JsonApiDotNetCoreExample/Models/Passport.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ namespace JsonApiDotNetCoreExample.Models
55
public class Passport : Identifiable
66
{
77
public virtual int? SocialSecurityNumber { get; set; }
8-
public virtual bool IsLocked { get; set; }
8+
public virtual bool IsLocked { get; set; }
99

10-
[HasOne("person")]
10+
[HasOne]
1111
public virtual Person Person { get; set; }
1212
}
1313
}

0 commit comments

Comments
 (0)