Skip to content

Commit

Permalink
Update to FunctionalDDD Version 1.1.0-alpha.13 (#20)
Browse files Browse the repository at this point in the history
* Update to FunctionalDDD Version 1.1.0-alpha.13
  • Loading branch information
xavierjohn authored Sep 17, 2023
1 parent 09f70f5 commit 5a07179
Show file tree
Hide file tree
Showing 34 changed files with 77 additions and 25 deletions.
1 change: 1 addition & 0 deletions Api/src/2022-12-21/Controllers/MenusController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

using Asp.Versioning;
using BuberDinner.Api._2022_12_21.Models.Menus;
using FunctionalDDD.Asp;
using Mapster;
using Mediator;
using Microsoft.AspNetCore.Mvc;
Expand Down
1 change: 1 addition & 0 deletions Api/src/Neutral/Controllers/AuthenticationController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

using Asp.Versioning;
using BuberDinner.Api.Neutral.Models.Authentication;
using FunctionalDDD.Asp;
using Mapster;
using Mediator;
using Microsoft.AspNetCore.Authorization;
Expand Down
1 change: 1 addition & 0 deletions Api/src/Neutral/Models/Authentication/RegisterRequest.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
namespace BuberDinner.Api.Neutral.Models.Authentication;

using BuberDinner.Application.Services.Authentication.Commands;
using FunctionalDDD.CommonValueObjects;
using FirstNameClass = Domain.User.ValueObjects.FirstName;
using LastNameClass = Domain.User.ValueObjects.LastName;
using PasswordClass = Domain.User.ValueObjects.Password;
Expand Down
1 change: 1 addition & 0 deletions Api/tests/2022-12-21/CreateMenuRequestTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using BuberDinner.Application.Menus.Commands;
using BuberDinner.Domain.Common.ValueObjects;
using BuberDinner.Domain.Host.ValueObject;
using FunctionalDDD.RailwayOrientedProgramming.Errors;

public class CreateMenuRequestTests
{
Expand Down
1 change: 1 addition & 0 deletions Api/tests/Neutral/LoginRequestTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

using BuberDinner.Api.Neutral.Models.Authentication;
using BuberDinner.Domain.User.ValueObjects;
using FunctionalDDD.RailwayOrientedProgramming.Errors;

public class LoginRequestTests
{
Expand Down
2 changes: 2 additions & 0 deletions Api/tests/Neutral/RegisterRequestTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

using BuberDinner.Api.Neutral.Models.Authentication;
using BuberDinner.Domain.User.ValueObjects;
using FunctionalDDD.CommonValueObjects;
using FunctionalDDD.RailwayOrientedProgramming.Errors;

public class RegisterRequestTests
{
Expand Down
1 change: 1 addition & 0 deletions Application/src/Authentication/Commands/RegisterCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

using BuberDinner.Application.Services.Authentication.Common;
using BuberDinner.Domain.User.ValueObjects;
using FunctionalDDD.CommonValueObjects;
using Mediator;

public class RegisterCommand
Expand Down
1 change: 1 addition & 0 deletions Application/tests/Authentication/AuthenticationTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.Threading.Tasks;
using BuberDinner.Application.Services.Authentication.Commands;
using BuberDinner.Domain.User.ValueObjects;
using FunctionalDDD.CommonValueObjects;
using Mediator;

public class AuthenticationTests
Expand Down
1 change: 1 addition & 0 deletions BuberDinner.sln
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
.editorconfig = .editorconfig
Directory.Build.props = Directory.Build.props
Directory.Packages.props = Directory.Packages.props
README.md = README.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BuberDinner.Api", "Api\src\BuberDinner.Api.csproj", "{116D2DB8-7C91-49CE-8B11-46886C31A113}"
Expand Down
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<ItemGroup>
<InternalsVisibleTo Include="$(MSBuildProjectName).Tests" />
<PackageReference Include="Nerdbank.GitVersioning" PrivateAssets="all" />
<Using Include="FunctionalDDD" />
<Using Include="FunctionalDDD.RailwayOrientedProgramming" />
</ItemGroup>

<!-- Test projects. -->
Expand Down
42 changes: 21 additions & 21 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,40 +4,40 @@
</PropertyGroup>
<!-- Runtime -->
<ItemGroup>
<PackageVersion Include="Asp.Versioning.Mvc.ApiExplorer" Version="7.0.0" />
<PackageVersion Include="Azure.Identity" Version="1.9.0" />
<PackageVersion Include="Asp.Versioning.Mvc.ApiExplorer" Version="7.0.1" />
<PackageVersion Include="Azure.Identity" Version="1.10.1" />
<PackageVersion Include="FluentValidation" Version="11.3.0" />
<PackageVersion Include="FunctionalDDD.Asp" Version="1.1.0-alpha.4" />
<PackageVersion Include="FunctionalDDD.CommonValueObjectGenerator" Version="1.1.0-alpha.4" />
<PackageVersion Include="FunctionalDDD.CommonValueObjects" Version="1.1.0-alpha.4" />
<PackageVersion Include="FunctionalDDD.DomainDrivenDesign" Version="1.1.0-alpha.4" />
<PackageVersion Include="FunctionalDDD.FluentValidation" Version="1.1.0-alpha.4" />
<PackageVersion Include="FunctionalDDD.Asp" Version="1.1.0-alpha.13" />
<PackageVersion Include="FunctionalDDD.CommonValueObjectGenerator" Version="1.1.0-alpha.13" />
<PackageVersion Include="FunctionalDDD.CommonValueObjects" Version="1.1.0-alpha.13" />
<PackageVersion Include="FunctionalDDD.DomainDrivenDesign" Version="1.1.0-alpha.13" />
<PackageVersion Include="FunctionalDDD.FluentValidation" Version="1.1.0-alpha.13" />
<PackageVersion Include="FunctionalDDD.RailwayOrientedProgramming" Version="$(FunctionalDDDVersion)" />
<PackageVersion Include="Mapster" Version="7.3.0" />
<PackageVersion Include="Mapster.DependencyInjection" Version="1.0.0" />
<PackageVersion Include="Mediator.Abstractions" Version="2.1.1" />
<PackageVersion Include="Mediator.SourceGenerator" Version="2.1.1" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="7.0.5" />
<PackageVersion Include="Mediator.Abstractions" Version="2.1.6" />
<PackageVersion Include="Mediator.SourceGenerator" Version="2.1.6" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="7.0.11" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.5" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.11" />
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="7.0.0" />
<PackageVersion Include="Microsoft.Azure.Cosmos" Version="3.33.0" />
<PackageVersion Include="Microsoft.Azure.Cosmos" Version="3.35.4" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="7.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="7.0.0" />
<PackageVersion Include="Nerdbank.GitVersioning" Version="3.6.132" />
<PackageVersion Include="Nerdbank.GitVersioning" Version="3.6.133" />
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.5.0" />
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="6.30.1" />
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="7.0.0" />
</ItemGroup>
<!-- Test -->
<ItemGroup>
<PackageVersion Include="coverlet.collector" Version="3.2.0" />
<PackageVersion Include="FluentAssertions" Version="6.11.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.6.0" />
<PackageVersion Include="xunit" Version="2.4.2" />
<PackageVersion Include="Xunit.DependencyInjection" Version="8.7.1" />
<PackageVersion Include="coverlet.collector" Version="6.0.0" />
<PackageVersion Include="FluentAssertions" Version="6.12.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
<PackageVersion Include="xunit" Version="2.5.0" />
<PackageVersion Include="Xunit.DependencyInjection" Version="8.8.2" />
<PackageVersion Include="Xunit.Priority" Version="1.1.6" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.4.5" />
<PackageVersion Include="xunit.categories" Version="2.0.6" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.0" />
<PackageVersion Include="xunit.categories" Version="2.0.8" />
</ItemGroup>
</Project>
2 changes: 2 additions & 0 deletions Domain/src/Common/Errors/Errors.Authentication.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
namespace BuberDinner.Domain.Errors;

using FunctionalDDD.RailwayOrientedProgramming.Errors;

public partial class Errors
{
public static class Authentication
Expand Down
2 changes: 2 additions & 0 deletions Domain/src/Common/Errors/Errors.User.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
namespace BuberDinner.Domain.Errors;

using FunctionalDDD.RailwayOrientedProgramming.Errors;

public partial class Errors
{
public static class User
Expand Down
2 changes: 2 additions & 0 deletions Domain/src/Common/ValueObjects/Description.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
namespace BuberDinner.Domain.Common.ValueObjects;

using FunctionalDDD.CommonValueObjects;

public partial class Description : RequiredString<Description>
{
}
2 changes: 2 additions & 0 deletions Domain/src/Common/ValueObjects/Name.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
namespace BuberDinner.Domain.Common.ValueObjects;

using FunctionalDDD.CommonValueObjects;

public partial class Name : RequiredString<Name>
{
}
2 changes: 2 additions & 0 deletions Domain/src/Dinner/ValueObjects/DinnerId.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
namespace BuberDinner.Domain.Dinner.ValueObject;

using FunctionalDDD.CommonValueObjects;

public partial class DinnerId : RequiredGuid<DinnerId>
{
}
2 changes: 2 additions & 0 deletions Domain/src/Host/ValueObjects/HostId.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
namespace BuberDinner.Domain.Host.ValueObject;

using FunctionalDDD.CommonValueObjects;

public partial class HostId : RequiredGuid<HostId>
{
}
2 changes: 2 additions & 0 deletions Domain/src/Menu/Entities/MenuItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
using BuberDinner.Domain.Common.ValueObjects;
using BuberDinner.Domain.Menu.ValueObject;
using FluentValidation;
using FunctionalDDD.DomainDrivenDesign;
using FunctionalDDD.FluentValidation;

public class MenuItem : Entity<MenuItemId>
{
Expand Down
2 changes: 2 additions & 0 deletions Domain/src/Menu/Entities/MenuSection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
using BuberDinner.Domain.Common.ValueObjects;
using BuberDinner.Domain.Menu.ValueObject;
using FluentValidation;
using FunctionalDDD.DomainDrivenDesign;
using FunctionalDDD.FluentValidation;

public class MenuSection : Entity<MenuSectionId>
{
Expand Down
3 changes: 3 additions & 0 deletions Domain/src/Menu/Menu.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
using BuberDinner.Domain.Menu.Entities;
using BuberDinner.Domain.Menu.ValueObject;
using FluentValidation;
using FunctionalDDD.DomainDrivenDesign;
using FunctionalDDD.FluentValidation;

public class Menu : AggregateRoot<MenuId>
{
public Name Name { get; }
Expand Down
2 changes: 2 additions & 0 deletions Domain/src/Menu/ValueObjects/MenuId.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
namespace BuberDinner.Domain.Menu.ValueObject;

using FunctionalDDD.CommonValueObjects;

public partial class MenuId : RequiredGuid<MenuId>
{
}
2 changes: 2 additions & 0 deletions Domain/src/Menu/ValueObjects/MenuItemId.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
namespace BuberDinner.Domain.Menu.ValueObject;

using FunctionalDDD.CommonValueObjects;

public partial class MenuItemId : RequiredGuid<MenuItemId>
{
}
2 changes: 2 additions & 0 deletions Domain/src/Menu/ValueObjects/MenuSectionId.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
namespace BuberDinner.Domain.Menu.ValueObject;

using FunctionalDDD.CommonValueObjects;

public partial class MenuSectionId : RequiredGuid<MenuSectionId>
{
}
2 changes: 2 additions & 0 deletions Domain/src/MenuReview/ValueObjects/MenuId.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
namespace BuberDinner.Domain.Menu.ValueObject;

using FunctionalDDD.CommonValueObjects;

public partial class MenuReviewId : RequiredGuid<MenuReviewId>
{
}
3 changes: 3 additions & 0 deletions Domain/src/User/Entities/User.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

using BuberDinner.Domain.User.ValueObjects;
using FluentValidation;
using FunctionalDDD.CommonValueObjects;
using FunctionalDDD.DomainDrivenDesign;
using FunctionalDDD.FluentValidation;

public class User : Entity<UserId>
{
Expand Down
2 changes: 2 additions & 0 deletions Domain/src/User/ValueObjects/FirstName.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
namespace BuberDinner.Domain.User.ValueObjects;

using FunctionalDDD.CommonValueObjects;

public partial class FirstName : RequiredString<FirstName>
{
}
2 changes: 2 additions & 0 deletions Domain/src/User/ValueObjects/LastName.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
namespace BuberDinner.Domain.User.ValueObjects;

using FunctionalDDD.CommonValueObjects;

public partial class LastName : RequiredString<LastName>
{
}
2 changes: 2 additions & 0 deletions Domain/src/User/ValueObjects/Password.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
namespace BuberDinner.Domain.User.ValueObjects;

using FunctionalDDD.CommonValueObjects;

public partial class Password : RequiredString<Password>
{
}
2 changes: 2 additions & 0 deletions Domain/src/User/ValueObjects/UserId.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
namespace BuberDinner.Domain.User.ValueObjects;

using FunctionalDDD.CommonValueObjects;

public partial class UserId : RequiredString<UserId>
{
}
1 change: 1 addition & 0 deletions Domain/tests/MenuTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using BuberDinner.Domain.Menu;
using BuberDinner.Domain.Menu.Entities;
using BuberDinner.Domain.Menu.ValueObject;
using FunctionalDDD.RailwayOrientedProgramming.Errors;

public class MenuTests
{
Expand Down
2 changes: 2 additions & 0 deletions Domain/tests/UserTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

using BuberDinner.Domain.User.Entities;
using BuberDinner.Domain.User.ValueObjects;
using FunctionalDDD.CommonValueObjects;
using FunctionalDDD.RailwayOrientedProgramming.Errors;
#pragma warning disable IDE0007 // Use var keyword

public class UserTests
Expand Down
1 change: 1 addition & 0 deletions Infrastructure/src/Persistence/Dto/UserDto.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

using BuberDinner.Domain.User.Entities;
using BuberDinner.Domain.User.ValueObjects;
using FunctionalDDD.CommonValueObjects;

public class UserDto
{
Expand Down
1 change: 1 addition & 0 deletions Infrastructure/tests/UserRespositoryTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using BuberDinner.Domain.User.Entities;
using BuberDinner.Domain.User.ValueObjects;
using BuberDinner.Infrastructure.Persistence.Cosmos;
using FunctionalDDD.CommonValueObjects;
using Xunit.Categories;

[Category("ComponentTests")]
Expand Down
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,13 @@ Watch these YouTube vidoes for the background.

[![REST API following CLEAN ARCHITECTURE & DDD Tutorial](https://img.youtube.com/vi/fhM0V2N1GpY/0.jpg)](https://www.youtube.com/watch?v=fhM0V2N1GpY&list=PLzYkqgWkHPKBcDIP5gzLfASkQyTdy0t4k)


This project is also a sample for [FunctionalDDD](https://github.com/xavierjohn/FunctionalDDD) which is a library that helps you to implement Domain-Driven Design in a functional way.
This is a sample project to showcase the power of the [FunctionalDDD](https://github.com/xavierjohn/FunctionalDDD) library.

## Concepts & Tech used

* .NET 7, EF Core
* Clean Architecture & Domain-Driven Design principles
* Common patterns such as CQRS, unit of work, repository, mediator
* Common patterns such as CQRS, repository, mediator
* Open source libraries such as Mediator, FluentValidation, FunctionalDDD, Mapster
* Authentication: JWT tokens

Expand Down

0 comments on commit 5a07179

Please sign in to comment.