using IRaCIS.Application.ViewModels;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
namespace IRaCIS.Core.API.Controllers.Trial
{
///
/// TP、Global、AD 工作量分配查看
///
[Route("workload")]
[ApiController, Authorize, ApiExplorerSettings(GroupName = "Trial")]
public class WorkloadDistributionController : ControllerBase
{
private readonly IWorkloadDistributionService _workloadDistributionService;
public WorkloadDistributionController(IWorkloadDistributionService workloadDistributionService)
{
_workloadDistributionService = workloadDistributionService;
}
///
/// TP 工作量分配列表
///
///
///
[HttpPost, Route("getWorkloadTPList")]
public IResponseOutput> GetWorkloadTPList(WorkloadDistributionQueryParam param)
{
return ResponseOutput.Ok(_workloadDistributionService.GetWorkloadTPList(param));
}
///
/// 批量分配Tp
///
///
///
[HttpPost, Route("DistributeTP")]
public IResponseOutput DistributeTP(WorkloadTPCommand workloadTPCommand)
{
return _workloadDistributionService.DistributeTP(workloadTPCommand);
}
//修改单个TP
[HttpPost, Route("UpdateDistributeTP/{tpId:guid}/{reviewerId:guid}/{studyId:guid}")]
public IResponseOutput UpdateDistributeTP(Guid tpId, Guid reviewerId,Guid studyId)
{
return _workloadDistributionService.UpdateDistributeTP(tpId,reviewerId, studyId);
}
[HttpPost, Route("getWorkloadADList")]
public IResponseOutput> GetWorkloadADList(WorkloadDistributionQueryParam param)
{
return ResponseOutput.Ok(_workloadDistributionService.GetWorkloadADList(param));
}
///
/// 批量分配AD
///
///
///
[HttpPost, Route("DistributeAD")]
public IResponseOutput DistributeAD(WorkloadAdCommand workloadTPCommand)
{
return ResponseOutput.Result(_workloadDistributionService.DistributeAD(workloadTPCommand));
}
//修改单个TP
[HttpPost, Route("UpdateDistributeAD/{tpId:guid}/{reviewerId:guid}")]
public IResponseOutput UpdateDistributeAD(Guid tpId, Guid reviewerId)
{
return ResponseOutput.Result(_workloadDistributionService.UpdateDistributeAD(tpId, reviewerId));
}
[HttpPost, Route("getWorkloadGlobalList")]
public IResponseOutput> GetWorkloadGlobalList(WorkloadDistributionQueryParam param)
{
return ResponseOutput.Ok(_workloadDistributionService.GetWorkloadGlobalList(param));
}
///
/// 批量分配Global
///
///
///
[HttpPost, Route("DistributeGlobal")]
public IResponseOutput DistributeGlobal(WorkloadGlobalCommand workloadGCommand)
{
return _workloadDistributionService.DistributeGlobal(workloadGCommand);
}
//修改单个Global
[HttpPost, Route("UpdateDistributeGlobal/{tpId:guid}/{reviewerId:guid}/{subjectId:guid}/{visitNum}")]
public IResponseOutput UpdateDistributeGlobal(Guid tpId, Guid reviewerId,Guid subjectId, decimal visitNum)
{
return _workloadDistributionService.UpdateDistributeGlobal(tpId, reviewerId,subjectId,visitNum);
}
[HttpGet, Route("GetWorkloadDetailList/{workloadId:guid}")]
[AllowAnonymous]
public IResponseOutput GetWorkloadDetailList(Guid workloadId)
{
return _workloadDistributionService.GetWorkloadDetail(workloadId);
}
[HttpPost, Route("UpdateGlobalStatus/{globalId:guid}")]
public IResponseOutput UpdateGlobalStatus(Guid globalId)
{
return _workloadDistributionService.UpdateGlobalStatus(globalId);
}
}
}