Files
Backend-Api/ServiceHost/Areas/Admin/Controllers/ProgramManager/TimeRequestController.cs

47 lines
1.8 KiB
C#

using GozareshgirProgramManager.Application._Common.Models;
using GozareshgirProgramManager.Application.Modules.TaskSectionTimeRequests.Commands.CreateTimeRequest;
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;
}
[HttpPost("Rejected")]
public async Task<ActionResult<OperationResult>> CreateRejectedTimeRequest(CreateRejectedTimeRequest request)
{
var command = new CreateTimeRequestCommand(request.Hours, request.Minutes, request.Description,
TaskSectionTimeRequestType.RejectedTime);
var res = await _mediator.Send(command);
return res;
}
[HttpPost("Initial")]
public async Task<ActionResult<OperationResult>> CreateInitialTimeRequest(CreateRejectedTimeRequest request)
{
var command = new CreateTimeRequestCommand(request.Hours, request.Minutes, request.Description,
TaskSectionTimeRequestType.InitialTime);
var res = await _mediator.Send(command);
return res;
}
[HttpPost("Additional")]
public async Task<ActionResult<OperationResult>> CreateAdditionalTimeRequest(CreateRejectedTimeRequest request)
{
var command = new CreateTimeRequestCommand(request.Hours, request.Minutes, request.Description,
TaskSectionTimeRequestType.AdditionalTime);
var res = await _mediator.Send(command);
return res;
}
}
public record CreateRejectedTimeRequest(int Hours, int Minutes, string Description);