diff --git a/ApplicationSystem/ApplicationSystem.csproj b/ApplicationSystem/ApplicationSystem.csproj
index 4a49ca1..9231962 100644
--- a/ApplicationSystem/ApplicationSystem.csproj
+++ b/ApplicationSystem/ApplicationSystem.csproj
@@ -21,6 +21,7 @@
+
diff --git a/ApplicationSystem/BusinessLogic/CommandHandlers/ApplicationCommandHandlers/ApplicationCreateCommandHandler.cs b/ApplicationSystem/BusinessLogic/CommandHandlers/ApplicationCommandHandlers/ApplicationCreateCommandHandler.cs
new file mode 100644
index 0000000..c7c220a
--- /dev/null
+++ b/ApplicationSystem/BusinessLogic/CommandHandlers/ApplicationCommandHandlers/ApplicationCreateCommandHandler.cs
@@ -0,0 +1,47 @@
+using ApplicationSystem.Database.Applications.Database.Context;
+using ApplicationSystem.Identity.Database.Models;
+using ApplicationSystem.MediatRHelper.AbstractHandlers;
+using ApplicationSystem.MediatRHelper.Models;
+using ApplicationSystem.Models.Commands.ApplicationCommands;
+using Microsoft.AspNetCore.Identity;
+
+namespace ApplicationSystem.BusinessLogic.CommandHandlers.ApplicationCommandHandlers
+{
+ ///
+ /// Реализация создания заявки
+ ///
+ ///
+ public class ApplicationCreateCommandHandler(
+ ILogger logger,
+ ApplicationContext context,
+ UserManager userManager)
+ : AbstractCommandHandler(logger)
+ {
+ private readonly ApplicationContext _context = context;
+ private readonly UserManager _userManager = userManager;
+
+ protected override async Task HandleAsync(
+ ApplicationCreateCommand request,
+ CancellationToken cancellationToken)
+ {
+ Guid? imageId = null;
+
+ if (request.File != null)
+ {
+ // ToDo
+ }
+
+ await _context.Applications.AddAsync(new()
+ {
+ CreatorId = request.UserId,
+ Text = request.Text,
+ TypeId = request.TypeId,
+ ImageId = imageId
+ }, cancellationToken);
+
+ await _context.SaveChangesAsync(cancellationToken);
+
+ return Ok();
+ }
+ }
+}
diff --git a/ApplicationSystem/Models/Commands/ApplicationCommands/ApplicationCreateCommand.cs b/ApplicationSystem/Models/Commands/ApplicationCommands/ApplicationCreateCommand.cs
index cc20eff..a8102b6 100644
--- a/ApplicationSystem/Models/Commands/ApplicationCommands/ApplicationCreateCommand.cs
+++ b/ApplicationSystem/Models/Commands/ApplicationCommands/ApplicationCreateCommand.cs
@@ -9,5 +9,9 @@ namespace ApplicationSystem.Models.Commands.ApplicationCommands
public record ApplicationCreateCommand
: ApplicationCreateRequest, IRequestModel
{
+ ///
+ /// Идентификатор пользователя
+ ///
+ public Guid UserId { get; set; }
}
}
diff --git a/ApplicationSystem/Models/Enums/ApplicationStatus.cs b/ApplicationSystem/Models/Enums/ApplicationStatus.cs
new file mode 100644
index 0000000..5a53cf0
--- /dev/null
+++ b/ApplicationSystem/Models/Enums/ApplicationStatus.cs
@@ -0,0 +1,18 @@
+namespace ApplicationSystem.Models.Enums
+{
+ ///
+ /// Статус заявки
+ ///
+ public enum ApplicationStatus
+ {
+ None = 0,
+
+ Open = 1,
+
+ InWork = 2,
+
+ Сompleted = 3,
+
+ Close = 4,
+ }
+}