using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Net.Http.Json; using System.Threading.Tasks; using wispro.sp.entity; using wispro.sp.share; using wispro.sp.web.Models; namespace wispro.sp.web.Services { public interface IProjectService { Task> GetProjectInfos(int State); Task> GetAllProjects(); Task> GetMyProjects(); Task SetProjectFinish(string caseNo); Task AddProjectPerformanctItem(ProjectContents projectPoint); Task getProjectWorkContent(int value); Task SaveContent(ProjectContents task); Task SubmitToReview(int Id, int ReviewerId); Task> GetProjectCanReviewWorkContent(string projectNo,CalMonth cal); Task> GetWaitingReviewProjects(); Task ReviewProjectWorkContent(List projectContents); Task> GetProjectHistroy(string projectNo); } public class ProjectService : IProjectService { private readonly IHttpService _httpClient; public ProjectService(IHttpService httpClient) { _httpClient = httpClient; } public async Task> GetProjectInfos(int State) { var data = await _httpClient.Get>($"Project/GetProjects?state={State}"); return data; } public async Task> GetAllProjects() { var data = await _httpClient.Get>($"Project/GetAll"); return data; } public async Task> GetMyProjects() { var data = await _httpClient.Get>($"Project/GetMyProjects"); return data; } public async Task SetProjectFinish(string caseNo) { var data = await _httpClient.Get($"Project/SetFinished?CaseNo={caseNo}"); return data; } public async Task AddProjectPerformanctItem(ProjectContents projectPoint) { var data = await _httpClient.Post($"PerformanceItem/AddProjectPerformance", projectPoint); return data; } public async Task getProjectWorkContent(int value) { var data = await _httpClient.Get($"Project/getProjectWorkContent?Id={value}"); return data; } public async Task SaveContent(ProjectContents task) { var response = await _httpClient.Post("Project/SaveProjectWorkContent", task); return response; } public async Task SubmitToReview(int Id, int ReviewerId) { var data = await _httpClient.Get($"Project/SubmitToReview?Id={Id}&&reviewerId={ReviewerId}"); return data; } public async Task> GetProjectCanReviewWorkContent(string projectNo,CalMonth cal) { var strUrl = $"Project/GetProjectCanReviewWorkContent?projectNo={projectNo}&&year={cal.Year}&&month={cal.Month}"; var data = await _httpClient.Get>(strUrl); return data; } public async Task> GetWaitingReviewProjects() { var data = await _httpClient.Get>($"Project/GetWaitingReviewProject"); return data; } public async Task> GetProjectHistroy(string projectNo) { var data = await _httpClient.Get>($"Project/GetProjectHisttory?projectNo={projectNo}"); return data; } public async Task ReviewProjectWorkContent(List projectContents) { var response = await _httpClient.Post("Project/ReviewProjectWorkContent", projectContents); return response; } } }