From 1975fedfbf42c754c8209603c740be554b217c19 Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Fri, 14 Nov 2025 15:39:28 +0330 Subject: [PATCH] =?UTF-8?q?Generator=20Changes=20at=2011/14/2025=203:36:13?= =?UTF-8?q?=E2=80=AFPM=20+03:30?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AcceptContract/AcceptContractCommand.cs | 9 ++++++++ .../AcceptContractCommandHandler.cs | 16 ++++++++++++++ .../AcceptContractCommandValidator.cs | 14 +++++++++++++ .../CreateContractOtpTokenCommand.cs | 7 +++++++ .../CreateContractOtpTokenCommandHandler.cs | 16 ++++++++++++++ .../CreateContractOtpTokenCommandValidator.cs | 14 +++++++++++++ .../Services/UserService.cs | 8 +++++++ .../Protos/user.proto | 21 +++++++++++++++++++ .../AcceptContractRequestValidator.cs | 17 +++++++++++++++ .../CreateContractOtpTokenRequestValidator.cs | 17 +++++++++++++++ 10 files changed, 139 insertions(+) create mode 100644 src/FrontOffice.BFF.Application/UserCQ/Commands/AcceptContract/AcceptContractCommand.cs create mode 100644 src/FrontOffice.BFF.Application/UserCQ/Commands/AcceptContract/AcceptContractCommandHandler.cs create mode 100644 src/FrontOffice.BFF.Application/UserCQ/Commands/AcceptContract/AcceptContractCommandValidator.cs create mode 100644 src/FrontOffice.BFF.Application/UserCQ/Commands/CreateContractOtpToken/CreateContractOtpTokenCommand.cs create mode 100644 src/FrontOffice.BFF.Application/UserCQ/Commands/CreateContractOtpToken/CreateContractOtpTokenCommandHandler.cs create mode 100644 src/FrontOffice.BFF.Application/UserCQ/Commands/CreateContractOtpToken/CreateContractOtpTokenCommandValidator.cs create mode 100644 src/Protobufs/FrontOffice.BFF.User.Protobuf/Validator/AcceptContractRequestValidator.cs create mode 100644 src/Protobufs/FrontOffice.BFF.User.Protobuf/Validator/CreateContractOtpTokenRequestValidator.cs diff --git a/src/FrontOffice.BFF.Application/UserCQ/Commands/AcceptContract/AcceptContractCommand.cs b/src/FrontOffice.BFF.Application/UserCQ/Commands/AcceptContract/AcceptContractCommand.cs new file mode 100644 index 0000000..944a712 --- /dev/null +++ b/src/FrontOffice.BFF.Application/UserCQ/Commands/AcceptContract/AcceptContractCommand.cs @@ -0,0 +1,9 @@ +namespace FrontOffice.BFF.Application.UserCQ.Commands.AcceptContract; +public record AcceptContractCommand : IRequest +{ + //کد otp + public string? Code { get; init; } + //فایل قرارداد + public string? ContractHtml { get; init; } + +} \ No newline at end of file diff --git a/src/FrontOffice.BFF.Application/UserCQ/Commands/AcceptContract/AcceptContractCommandHandler.cs b/src/FrontOffice.BFF.Application/UserCQ/Commands/AcceptContract/AcceptContractCommandHandler.cs new file mode 100644 index 0000000..266ee9b --- /dev/null +++ b/src/FrontOffice.BFF.Application/UserCQ/Commands/AcceptContract/AcceptContractCommandHandler.cs @@ -0,0 +1,16 @@ +namespace FrontOffice.BFF.Application.UserCQ.Commands.AcceptContract; +public class AcceptContractCommandHandler : IRequestHandler +{ + private readonly IApplicationContractContext _context; + + public AcceptContractCommandHandler(IApplicationContractContext context) + { + _context = context; + } + + public async Task Handle(AcceptContractCommand request, CancellationToken cancellationToken) + { + //TODO: Implement your business logic + return new Unit(); + } +} diff --git a/src/FrontOffice.BFF.Application/UserCQ/Commands/AcceptContract/AcceptContractCommandValidator.cs b/src/FrontOffice.BFF.Application/UserCQ/Commands/AcceptContract/AcceptContractCommandValidator.cs new file mode 100644 index 0000000..a10c280 --- /dev/null +++ b/src/FrontOffice.BFF.Application/UserCQ/Commands/AcceptContract/AcceptContractCommandValidator.cs @@ -0,0 +1,14 @@ +namespace FrontOffice.BFF.Application.UserCQ.Commands.AcceptContract; +public class AcceptContractCommandValidator : AbstractValidator +{ + public AcceptContractCommandValidator() + { + } + public Func>> ValidateValue => async (model, propertyName) => + { + var result = await ValidateAsync(ValidationContext.CreateWithOptions((AcceptContractCommand)model, x => x.IncludeProperties(propertyName))); + if (result.IsValid) + return Array.Empty(); + return result.Errors.Select(e => e.ErrorMessage); + }; +} diff --git a/src/FrontOffice.BFF.Application/UserCQ/Commands/CreateContractOtpToken/CreateContractOtpTokenCommand.cs b/src/FrontOffice.BFF.Application/UserCQ/Commands/CreateContractOtpToken/CreateContractOtpTokenCommand.cs new file mode 100644 index 0000000..cd02dce --- /dev/null +++ b/src/FrontOffice.BFF.Application/UserCQ/Commands/CreateContractOtpToken/CreateContractOtpTokenCommand.cs @@ -0,0 +1,7 @@ +namespace FrontOffice.BFF.Application.UserCQ.Commands.CreateContractOtpToken; +public record CreateContractOtpTokenCommand : IRequest +{ + //شناسه یکتای قرارداد + public string? CotractGuid { get; init; } + +} \ No newline at end of file diff --git a/src/FrontOffice.BFF.Application/UserCQ/Commands/CreateContractOtpToken/CreateContractOtpTokenCommandHandler.cs b/src/FrontOffice.BFF.Application/UserCQ/Commands/CreateContractOtpToken/CreateContractOtpTokenCommandHandler.cs new file mode 100644 index 0000000..92d4af5 --- /dev/null +++ b/src/FrontOffice.BFF.Application/UserCQ/Commands/CreateContractOtpToken/CreateContractOtpTokenCommandHandler.cs @@ -0,0 +1,16 @@ +namespace FrontOffice.BFF.Application.UserCQ.Commands.CreateContractOtpToken; +public class CreateContractOtpTokenCommandHandler : IRequestHandler +{ + private readonly IApplicationContractContext _context; + + public CreateContractOtpTokenCommandHandler(IApplicationContractContext context) + { + _context = context; + } + + public async Task Handle(CreateContractOtpTokenCommand request, CancellationToken cancellationToken) + { + //TODO: Implement your business logic + return new Unit(); + } +} diff --git a/src/FrontOffice.BFF.Application/UserCQ/Commands/CreateContractOtpToken/CreateContractOtpTokenCommandValidator.cs b/src/FrontOffice.BFF.Application/UserCQ/Commands/CreateContractOtpToken/CreateContractOtpTokenCommandValidator.cs new file mode 100644 index 0000000..651cea0 --- /dev/null +++ b/src/FrontOffice.BFF.Application/UserCQ/Commands/CreateContractOtpToken/CreateContractOtpTokenCommandValidator.cs @@ -0,0 +1,14 @@ +namespace FrontOffice.BFF.Application.UserCQ.Commands.CreateContractOtpToken; +public class CreateContractOtpTokenCommandValidator : AbstractValidator +{ + public CreateContractOtpTokenCommandValidator() + { + } + public Func>> ValidateValue => async (model, propertyName) => + { + var result = await ValidateAsync(ValidationContext.CreateWithOptions((CreateContractOtpTokenCommand)model, x => x.IncludeProperties(propertyName))); + if (result.IsValid) + return Array.Empty(); + return result.Errors.Select(e => e.ErrorMessage); + }; +} diff --git a/src/FrontOffice.BFF.WebApi/Services/UserService.cs b/src/FrontOffice.BFF.WebApi/Services/UserService.cs index 393000d..a266c03 100644 --- a/src/FrontOffice.BFF.WebApi/Services/UserService.cs +++ b/src/FrontOffice.BFF.WebApi/Services/UserService.cs @@ -1,3 +1,4 @@ +using FrontOffice.BFF.Protobuf.Protos.User; using FrontOffice.BFF.WebApi.Common.Services; using FrontOffice.BFF.Application.UserCQ.Commands.UpdateUser; using FrontOffice.BFF.Application.UserCQ.Commands.DeleteUser; @@ -54,4 +55,11 @@ public class UserService : UserContract.UserContractBase { return await _dispatchRequestToCQRS.Handle(request, context); } + { + return await _dispatchRequestToCQRS.Handle(request, context); + } + public override async Task AcceptContract(AcceptContractRequest request, ServerCallContext context) + { + return await _dispatchRequestToCQRS.Handle(request, context); + } } diff --git a/src/Protobufs/FrontOffice.BFF.User.Protobuf/Protos/user.proto b/src/Protobufs/FrontOffice.BFF.User.Protobuf/Protos/user.proto index b4c270f..5acce8a 100644 --- a/src/Protobufs/FrontOffice.BFF.User.Protobuf/Protos/user.proto +++ b/src/Protobufs/FrontOffice.BFF.User.Protobuf/Protos/user.proto @@ -60,6 +60,18 @@ service UserContract body: "*" }; }; + rpc CreateContractOtpToken(CreateContractOtpTokenRequest) returns (google.protobuf.Empty){ + option (google.api.http) = { + post: "/CreateContractOtpToken" + body: "*" + }; + }; + rpc AcceptContract(AcceptContractRequest) returns (google.protobuf.Empty){ + option (google.api.http) = { + post: "/AcceptContract" + body: "*" + }; + }; } message UpdateUserRequest { @@ -188,6 +200,15 @@ message SetPasswordForUserRequest string new_password = 2; string confirm_password = 3; } +message CreateContractOtpTokenRequest +{ + google.protobuf.StringValue cotract_guid = 1; +} +message AcceptContractRequest +{ + google.protobuf.StringValue code = 1; + google.protobuf.StringValue contract_html = 2; +} message PaginationState { diff --git a/src/Protobufs/FrontOffice.BFF.User.Protobuf/Validator/AcceptContractRequestValidator.cs b/src/Protobufs/FrontOffice.BFF.User.Protobuf/Validator/AcceptContractRequestValidator.cs new file mode 100644 index 0000000..4ed250e --- /dev/null +++ b/src/Protobufs/FrontOffice.BFF.User.Protobuf/Validator/AcceptContractRequestValidator.cs @@ -0,0 +1,17 @@ +using FluentValidation; +using FrontOfficeMicroservice.Protobuf.Protos.User; +namespace FrontOfficeMicroservice.Protobuf.Validator.User; + +public class AcceptContractRequestValidator : AbstractValidator +{ + public AcceptContractRequestValidator() + { + } + public Func>> ValidateValue => async (model, propertyName) => + { + var result = await ValidateAsync(ValidationContext.CreateWithOptions((AcceptContractRequest)model, x => x.IncludeProperties(propertyName))); + if (result.IsValid) + return Array.Empty(); + return result.Errors.Select(e => e.ErrorMessage); + }; +} diff --git a/src/Protobufs/FrontOffice.BFF.User.Protobuf/Validator/CreateContractOtpTokenRequestValidator.cs b/src/Protobufs/FrontOffice.BFF.User.Protobuf/Validator/CreateContractOtpTokenRequestValidator.cs new file mode 100644 index 0000000..58c4baf --- /dev/null +++ b/src/Protobufs/FrontOffice.BFF.User.Protobuf/Validator/CreateContractOtpTokenRequestValidator.cs @@ -0,0 +1,17 @@ +using FluentValidation; +using FrontOfficeMicroservice.Protobuf.Protos.User; +namespace FrontOfficeMicroservice.Protobuf.Validator.User; + +public class CreateContractOtpTokenRequestValidator : AbstractValidator +{ + public CreateContractOtpTokenRequestValidator() + { + } + public Func>> ValidateValue => async (model, propertyName) => + { + var result = await ValidateAsync(ValidationContext.CreateWithOptions((CreateContractOtpTokenRequest)model, x => x.IncludeProperties(propertyName))); + if (result.IsValid) + return Array.Empty(); + return result.Errors.Select(e => e.ErrorMessage); + }; +}