Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Asp.Versioning.Mvc" Version="8.1.1" />
<PackageVersion Include="AutoMapper" Version="[14.0.0]" />
<PackageVersion Include="BB84.EntityFrameworkCore.Entities" Version="4.2.322" />
<PackageVersion Include="BB84.EntityFrameworkCore.Repositories" Version="4.2.322" />
<PackageVersion Include="BB84.EntityFrameworkCore.Repositories.Abstractions" Version="4.2.322" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,18 @@ internal static SwaggerGenOptions ConfigureSecurityDefinition(this SwaggerGenOpt
options.AddSecurityDefinition(PresentationConstants.Authentication.Bearer, new OpenApiSecurityScheme()
{
In = ParameterLocation.Header,
Description = "Please enter token",
Description = "JWT Authorization header using the Bearer scheme.",
Name = PresentationConstants.Authentication.SecuritySchemeName,
Type = SecuritySchemeType.Http,
BearerFormat = PresentationConstants.Authentication.BearerFormat,
Scheme = PresentationConstants.Authentication.Bearer
});

options.AddSecurityRequirement(document => new OpenApiSecurityRequirement
{
[new OpenApiSecuritySchemeReference(PresentationConstants.Authentication.Bearer, document)] = []
});

return options;
}
}
5 changes: 4 additions & 1 deletion src/BB84.Home.Application/BB84.Home.Application.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
<ProjectReference Include="..\BB84.Home.Domain\BB84.Home.Domain.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="AutoMapper" />
<PackageReference Include="BB84.EntityFrameworkCore.Repositories.Abstractions" />
<PackageReference Include="FluentValidation.AspNetCore" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
Expand Down Expand Up @@ -38,4 +37,8 @@
<ItemGroup>
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
</ItemGroup>
<ItemGroup>
<Folder Include="Profiles\Requests\" />
<Folder Include="Profiles\Responses\" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@ public sealed class ListResponse : IdentityResponse
/// <summary>
/// The items within the todo list.
/// </summary>
public ItemResponse[]? Items { get; init; }
public IEnumerable<ItemResponse>? Items { get; init; }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
using BB84.Home.Application.Contracts.Requests.Attendance;
using BB84.Home.Domain.Entities.Attendance;

namespace BB84.Home.Application.Extensions;

internal static partial class RequestExtensions
{
public static AttendanceEntity ToEntity(this AttendanceCreateRequest request)
{
AttendanceEntity entity = new()
{
Date = request.Date,
Type = request.Type,
StartTime = request.StartTime,
EndTime = request.EndTime,
BreakTime = request.BreakTime
};

return entity;
}

public static AttendanceEntity ToEntity(this AttendanceCreateRequest request, Guid userId)
{
AttendanceEntity entity = request.ToEntity();
entity.UserId = userId;

return entity;
}

public static AttendanceEntity ToEntity(this AttendanceUpdateRequest request, AttendanceEntity entity)
{
entity.Type = request.Type;
entity.StartTime = request.StartTime;
entity.EndTime = request.EndTime;
entity.BreakTime = request.BreakTime;

return entity;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
using BB84.Home.Application.Contracts.Requests.Documents;
using BB84.Home.Domain.Entities.Documents;

namespace BB84.Home.Application.Extensions;

internal static partial class RequestExtensions
{
/// <summary>
/// Converts a <see cref="DocumentCreateRequest"/> to a <see cref="DocumentEntity"/>.
/// </summary>
/// <param name="request">The request to convert.</param>
/// <returns>The converted <see cref="DocumentEntity"/>.</returns>
public static DocumentEntity ToEntity(this DocumentCreateRequest request)
{
DocumentEntity entity = new()
{
Name = request.Name,
Directory = request.Directory,
Flags = request.Flags,
CreationTime = request.CreationTime,
LastWriteTime = request.LastWriteTime,
LastAccessTime = request.LastAccessTime
};

return entity;
}

/// <summary>
/// Converts a <see cref="DocumentUpdateRequest"/> to a <see cref="DocumentEntity"/>.
/// </summary>
/// <param name="request">The request to convert.</param>
/// <param name="entity">The entity to update.</param>
/// <returns>The updated <see cref="DocumentEntity"/>.</returns>
public static DocumentEntity ToEntity(this DocumentUpdateRequest request, DocumentEntity entity)
{
entity.Name = request.Name;
entity.Directory = request.Directory;
entity.Flags = request.Flags;
entity.CreationTime = request.CreationTime;
entity.LastWriteTime = request.LastWriteTime;
entity.LastAccessTime = request.LastAccessTime;

return entity;
}
}
136 changes: 136 additions & 0 deletions src/BB84.Home.Application/Extensions/RequestExtensions.Finance.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
using BB84.Home.Application.Contracts.Requests.Finance;
using BB84.Home.Domain.Entities.Finance;

namespace BB84.Home.Application.Extensions;

internal static partial class RequestExtensions
{
/// <summary>
/// Converts an <see cref="AccountCreateRequest"/> to an <see cref="AccountEntity"/>.
/// </summary>
/// <param name="request">The <see cref="AccountCreateRequest"/> to convert.</param>
/// <returns>The converted <see cref="AccountEntity"/>.</returns>
public static AccountEntity ToEntity(this AccountCreateRequest request)
{
AccountEntity entity = new()
{
IBAN = request.IBAN,
Type = request.Type,
Provider = request.Provider
};

if (request.Cards is not null)
entity.Cards = [.. request.Cards.Select(c => c.ToEntity())];

return entity;
}

/// <summary>
/// Converts an <see cref="AccountUpdateRequest"/> to an <see cref="AccountEntity"/>.
/// </summary>
/// <param name="request">The <see cref="AccountUpdateRequest"/> to convert.</param>
/// <param name="entity">The entity to update.</param>
/// <returns>The updated <see cref="AccountEntity"/>.</returns>
public static AccountEntity ToEntity(this AccountUpdateRequest request, AccountEntity entity)
{
entity.Type = request.Type;
entity.Provider = request.Provider;

return entity;
}

/// <summary>
/// Converts a <see cref="CardCreateRequest"/> to a <see cref="CardEntity"/>.
/// </summary>
/// <param name="request">The <see cref="CardCreateRequest"/> to convert.</param>
/// <returns>The converted <see cref="CardEntity"/>.</returns>
public static CardEntity ToEntity(this CardCreateRequest request)
{
CardEntity entity = new()
{
PAN = request.PAN,
Type = request.Type,
ValidUntil = request.ValidUntil
};

return entity;
}

/// <summary>
/// Converts a <see cref="CardCreateRequest"/> to a <see cref="CardEntity"/>.
/// </summary>
/// <param name="request">The <see cref="CardCreateRequest"/> to convert.</param>
/// <param name="userId">The user ID to associate with the card.</param>
/// <param name="accountId">The account ID to associate with the card.</param>
/// <returns>The converted <see cref="CardEntity"/>.</returns>
public static CardEntity ToEntity(this CardCreateRequest request, Guid userId, Guid accountId)
{
CardEntity entity = request.ToEntity();
entity.UserId = userId;
entity.AccountId = accountId;

return entity;
}

/// <summary>
/// Converts a <see cref="CardUpdateRequest"/> to a <see cref="CardEntity"/>.
/// </summary>
/// <param name="request">The <see cref="CardUpdateRequest"/> to convert.</param>
/// <param name="entity">The <see cref="CardEntity"/> to update.</param>
/// <returns>The updated <see cref="CardEntity"/>.</returns>
public static CardEntity ToEntity(this CardUpdateRequest request, CardEntity entity)
{
entity.Type = request.Type;
entity.ValidUntil = request.ValidUntil;

return entity;
}

/// <summary>
/// Converts a <see cref="TransactionCreateRequest"/> to a <see cref="TransactionEntity"/>.
/// </summary>
/// <param name="request">The <see cref="TransactionCreateRequest"/> to convert.</param>
/// <returns>The converted <see cref="TransactionEntity"/>.</returns>
public static TransactionEntity ToEntity(this TransactionCreateRequest request)
{
TransactionEntity entity = new()
{
BookingDate = request.BookingDate,
ValueDate = request.ValueDate,
PostingText = request.PostingText,
ClientBeneficiary = request.ClientBeneficiary,
Purpose = request.Purpose,
AccountNumber = request.AccountNumber,
BankCode = request.BankCode,
AmountEur = request.AmountEur,
CreditorId = request.CreditorId,
MandateReference = request.MandateReference,
CustomerReference = request.CustomerReference
};

return entity;
}

/// <summary>
/// Converts a <see cref="TransactionUpdateRequest"/> to a <see cref="TransactionEntity"/>.
/// </summary>
/// <param name="request">The <see cref="TransactionUpdateRequest"/> to convert.</param>
/// <param name="entity">The <see cref="TransactionEntity"/> to update.</param>
/// <returns>The updated <see cref="TransactionEntity"/>.</returns>
public static TransactionEntity ToEntity(this TransactionUpdateRequest request, TransactionEntity entity)
{
entity.BookingDate = request.BookingDate;
entity.ValueDate = request.ValueDate;
entity.PostingText = request.PostingText;
entity.ClientBeneficiary = request.ClientBeneficiary;
entity.Purpose = request.Purpose;
entity.AccountNumber = request.AccountNumber;
entity.BankCode = request.BankCode;
entity.AmountEur = request.AmountEur;
entity.CreditorId = request.CreditorId;
entity.MandateReference = request.MandateReference;
entity.CustomerReference = request.CustomerReference;

return entity;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
using BB84.Home.Application.Contracts.Requests.Identity;
using BB84.Home.Domain.Entities.Identity;

namespace BB84.Home.Application.Extensions;

internal static partial class RequestExtensions
{
/// <summary>
/// Converts a <see cref="UserCreateRequest"/> to a <see cref="UserEntity"/>.
/// </summary>
/// <param name="request">The <see cref="UserCreateRequest"/> to convert.</param>
/// <returns>The converted <see cref="UserEntity"/>.</returns>
public static UserEntity ToEntity(this UserCreateRequest request)
{
UserEntity entity = new()
{
FirstName = request.FirstName,
LastName = request.LastName,
Email = request.Email,
UserName = request.UserName
};

return entity;
}

/// <summary>
/// Converts a <see cref="UserUpdateRequest"/> to a <see cref="UserEntity"/>.
/// </summary>
/// <param name="request">The <see cref="UserUpdateRequest"/> to convert.</param>
/// <param name="entity">The entity to update with the values from the request.</param>
/// <returns>The updated <see cref="UserEntity"/>.</returns>
public static UserEntity ToEntity(this UserUpdateRequest request, UserEntity entity)
{
entity.Email = request.Email;
entity.FirstName = request.FirstName;
entity.LastName = request.LastName;
entity.MiddleName = request.MiddleName;
entity.DateOfBirth = request.DateOfBirth;
entity.PhoneNumber = request.PhoneNumber;
entity.Picture = request.Picture;

if (request.Preferences is not null)
{
var attendancePreferences = request.Preferences.AttendancePreferences;
if (attendancePreferences is not null)
{
entity.Preferences = new PreferencesModel(
new AttendancePreferencesModel(attendancePreferences.WorkDays, attendancePreferences.WorkHours, attendancePreferences.VacationDays));
}
}

return entity;
}
}
Loading
Loading