public async Task <ActionResult <RollingStockModel> > Create(RollingStockModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // TODO: Validate road, road + road number combo // TODO: Validate rs type and rs class var rollingStock = new RollingStock { RoadId = model.RoadId, RoadNumber = model.RoadNumber, Notes = model.Notes, Slug = model.Slug, // TODO: auto generate = road marks + road number RollingStockTypeId = model.RollingStockTypeId, RollingStockClassId = model.RollingStockClassId, Details = model.Details, Plate = model.Plate, MaxGrossWeight = model.MaxGrossWeight, LoadLimit = model.LoadLimit, DryCapacity = model.DryCapacity, ExteriorDimensions = model.ExteriorDimensions, InteriorDimensions = model.InteriorDimensions }; await _rollingStockRepository.CreateAsync(rollingStock); model = _mapper.Map <RollingStockModel>(rollingStock); return(CreatedAtAction(nameof(GetById), new { id = rollingStock.Id }, model)); }
public async Task <ActionResult <RollingStockModel> > Update(int id, RollingStockModel model) { var rollingStock = await _rollingStockRepository.GetByIdAsync(id); if (rollingStock == null) { return(NotFound()); } // TODO: Validate rollingStock type and parent if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // Road, road number and slug cannot be updated - create new rollingStock record rollingStock.Notes = model.Notes; rollingStock.RollingStockTypeId = model.RollingStockTypeId; rollingStock.RollingStockClassId = model.RollingStockClassId; rollingStock.Details = model.Details; rollingStock.Plate = model.Plate; rollingStock.MaxGrossWeight = model.MaxGrossWeight; rollingStock.LoadLimit = model.LoadLimit; rollingStock.DryCapacity = model.DryCapacity; rollingStock.ExteriorDimensions = model.ExteriorDimensions; rollingStock.InteriorDimensions = model.InteriorDimensions; await _rollingStockRepository.UpdateAsync(rollingStock); return(Ok(model)); }