Example #1
0
        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));
        }
Example #2
0
        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));
        }