71 lines
2.9 KiB
C#
71 lines
2.9 KiB
C#
using GozareshgirProgramManager.Application._Common.Models;
|
|
using GozareshgirProgramManager.Application.Modules.TaskSectionTimeRequests.Commands.AcceptTimeRequest;
|
|
using GozareshgirProgramManager.Application.Modules.TaskSectionTimeRequests.Commands.CreateTimeRequest;
|
|
using GozareshgirProgramManager.Application.Modules.TaskSectionTimeRequests.Queries.CreateTimeRequestDetails;
|
|
using GozareshgirProgramManager.Domain.ProjectAgg.Entities.Task.TaskSection;
|
|
using GozareshgirProgramManager.Domain.ProjectAgg.Enums;
|
|
using MediatR;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using ServiceHost.BaseControllers;
|
|
|
|
namespace ServiceHost.Areas.Admin.Controllers.ProgramManager;
|
|
|
|
public class TimeRequestController:ProgramManagerBaseController
|
|
{
|
|
private readonly IMediator _mediator;
|
|
|
|
public TimeRequestController(IMediator mediator)
|
|
{
|
|
_mediator = mediator;
|
|
}
|
|
|
|
[HttpGet("Rejected")]
|
|
public async Task<ActionResult<OperationResult>> GetCreateRejectedTimeRequest(Guid taskSectionId)
|
|
{
|
|
var command = new CreateTimeRequestDetailsQuery(taskSectionId);
|
|
var res = await _mediator.Send(command);
|
|
return res;
|
|
}
|
|
[HttpPost("Rejected")]
|
|
public async Task<ActionResult<OperationResult>> CreateRejectedTimeRequest(CreateTimeRequest request)
|
|
{
|
|
var command = new CreateTimeRequestCommand(request.Hours, request.Minutes, request.Description,
|
|
TaskSectionTimeRequestType.RejectedTime,request.TaskSectionId);
|
|
var res = await _mediator.Send(command);
|
|
return res;
|
|
}
|
|
|
|
[HttpPost("Initial")]
|
|
public async Task<ActionResult<OperationResult>> CreateInitialTimeRequest(CreateTimeRequest request)
|
|
{
|
|
var command = new CreateTimeRequestCommand(request.Hours, request.Minutes, request.Description,
|
|
TaskSectionTimeRequestType.InitialTime,request.TaskSectionId);
|
|
var res = await _mediator.Send(command);
|
|
return res;
|
|
}
|
|
|
|
[HttpPost("Additional")]
|
|
public async Task<ActionResult<OperationResult>> CreateAdditionalTimeRequest(CreateTimeRequest request)
|
|
{
|
|
var command = new CreateTimeRequestCommand(request.Hours, request.Minutes, request.Description,
|
|
TaskSectionTimeRequestType.AdditionalTime,request.TaskSectionId);
|
|
var res = await _mediator.Send(command);
|
|
return res;
|
|
}
|
|
|
|
[HttpPost("Accept")]
|
|
public async Task<ActionResult<OperationResult>> AcceptTimeRequest(AcceptTimeRequestDto request)
|
|
{
|
|
var command = new AcceptTimeRequestCommand(request.TimeRequestId, request.SectionId,
|
|
request.TimeType, request.Hour, request.Minute);
|
|
var res = await _mediator.Send(command);
|
|
return res;
|
|
}
|
|
}
|
|
|
|
public record CreateTimeRequest(int Hours, int Minutes, string Description,Guid TaskSectionId);
|
|
|
|
public record AcceptTimeRequestDto(Guid TimeRequestId, Guid SectionId,
|
|
TaskSectionAdditionalTimeType TimeType, int Hour, int Minute);
|
|
|