demo20230512/Controllers/Api/RiskAssmt/AssmtFactorController.cs

99 lines
3.2 KiB
C#
Raw Normal View History

2023-05-12 10:20:28 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Weee.Models;
using Weee.Service;
using Weee.ViewModels.DataTransferObject;
namespace Weee.Controllers.Api.RiskAssmt
{
public class AssmtFactorController : ApiControllerBase
{
private readonly AssmtFactorDataService service;
public AssmtFactorController(AssmtFactorDataService d) : base(d)
{
service = d;
}
[Route("api/AssmtFactor/GetByLcaId/{LCAID}")]
//[Filter.ApiMultilanguage]disable obsolete warning, not sure OK or not
public object GetByLcaId(int LCAID, int page = 1, string search = "", int pagesize = 15)
{
//var type = service.GetLCAType(LCAID);
var query = service.GetList(LCAID);
var lca = service.GetLCA(LCAID);
return new
{
Factors = MapperToDtos(query.ToList()),
GradingScore = lca.GradingScore
//OptionsOne = gwpOptions,
//OptionsTwo = parameterservice.GetNonYearlyParameterOptions(Categories.Refrigerant),
//SheetHeader = service.GetSheetHeader(LCAID, Categories.Refrigerant)
};
}
private IEnumerable<AssmtFactorDTO> MapperToDtos(IEnumerable<LCARiskAssmtSurveyForm_AssmtFactor> models)
{
var result = new List<AssmtFactorDTO>();
foreach (var assmtFactor in models)
{
var assmtFactorDTO = new AssmtFactorDTO()
{
ID = assmtFactor.ID,
LCAID = assmtFactor.LCAID,
FactorName = assmtFactor.FactorName,
Comment = assmtFactor.Comment
};
var factorScoresDto = new List<AssmtFactorScoreDTO>();
foreach (var factorScore in assmtFactor.FactorScores)
{
factorScoresDto.Add(new AssmtFactorScoreDTO()
{
ID = factorScore.ID,
FactorId = factorScore.FactorId,
OptionDescription = factorScore.OptionDescription,
OptionScore = factorScore.OptionScore,
Comment = factorScore.Comment
});
}
assmtFactorDTO.FactorScores = factorScoresDto;
result.Add(assmtFactorDTO);
}
return result;
}
[Route("api/AssmtFactor/Save/{LCAID}/{id}")]
[HttpPost]
public object Save(int LCAID, int id, AssmtFactorDTO ToBeSave)
{
if (!ModelState.IsValid) { return BadRequest(); }
if (id != ToBeSave.ID || LCAID != ToBeSave.LCAID) { return BadRequest(); }
var entry = service.Save(ToBeSave);
if (id == 0)
{
ToBeSave.ID = entry.ID;
}
return ToBeSave;
}
[Route("api/AssmtFactor/Delete/{ID}")]
[HttpDelete]
public IHttpActionResult Delete(int ID)
{
service.Delete(ID);
return Ok();
}
}
}