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();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|