99 lines
3.2 KiB
C#
99 lines
3.2 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|