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 MapperToDtos(IEnumerable models) { var result = new List(); 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(); 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(); } } }