Создание заявки

This commit is contained in:
bekodeg
2025-06-17 21:00:20 +04:00
parent 89176542f2
commit 94e60aa641
4 changed files with 70 additions and 0 deletions

View File

@@ -21,6 +21,7 @@
<ItemGroup>
<ProjectReference Include="..\ApplicationSystem.Contracts\ApplicationSystem.Contracts.csproj" />
<ProjectReference Include="..\ApplicationSystem.Database.Applications\ApplicationSystem.Database.csproj" />
<ProjectReference Include="..\ApplicationSystem.Identity\ApplicationSystem.Identity.csproj" />
<ProjectReference Include="..\ApplicationSystem.MediatrHelper\ApplicationSystem.MediatRHelper.csproj" />
</ItemGroup>

View File

@@ -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
{
/// <summary>
/// Реализация создания заявки
/// </summary>
/// <param name="logger"></param>
public class ApplicationCreateCommandHandler(
ILogger<ApplicationCreateCommandHandler> logger,
ApplicationContext context,
UserManager<ApplicationSystemUser> userManager)
: AbstractCommandHandler<ApplicationCreateCommand>(logger)
{
private readonly ApplicationContext _context = context;
private readonly UserManager<ApplicationSystemUser> _userManager = userManager;
protected override async Task<ResponseModel> 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();
}
}
}

View File

@@ -9,5 +9,9 @@ namespace ApplicationSystem.Models.Commands.ApplicationCommands
public record ApplicationCreateCommand
: ApplicationCreateRequest, IRequestModel
{
/// <summary>
/// Идентификатор пользователя
/// </summary>
public Guid UserId { get; set; }
}
}

View File

@@ -0,0 +1,18 @@
namespace ApplicationSystem.Models.Enums
{
/// <summary>
/// Статус заявки
/// </summary>
public enum ApplicationStatus
{
None = 0,
Open = 1,
InWork = 2,
Сompleted = 3,
Close = 4,
}
}