Exemple #1
0
        public async Task <WagonModel> UpdateWagonAsync(WagonModel wagonModel)
        {
            var wagonEntity = new Data.Entities.Wagon
            {
                WagonId = wagonModel.WagonId,
                Chairs  = wagonModel.Chairs
                          .Select(x => new Data.Entities.Chair()
                {
                    ChairId = x.ChairId, NearWindow = x.NearWindow, Number = x.Number, Reserved = x.Reserved, WagonId = x.WagonId
                })
                          .ToList()
            };

            wagonEntity = await _wagonRepository.UpdateAsync(wagonEntity);

            return(new WagonModel
            {
                WagonId = wagonEntity.WagonId,
                NumberOfChairs = wagonEntity.Chairs.Count,
                Chairs = wagonEntity.Chairs
                         .Select(x => new ChairModel()
                {
                    ChairId = x.ChairId, NearWindow = x.NearWindow, Number = x.Number, Reserved = x.Reserved, WagonId = x.WagonId
                })
                         .ToList()
            });
        }
Exemple #2
0
        public async Task <ActionResult> UpdateWagonAsync([FromRoute] int wagonId, [FromBody] UpdateWagonModel updateWagonModel)
        {
            if (wagonId != updateWagonModel.WagonId)
            {
                return(BadRequest());
            }

            var wagon = await _wagonService.GetWagonAsync(wagonId);

            if (wagon is null)
            {
                return(NotFound());
            }

            var wagonModel = new WagonModel
            {
                WagonId        = wagonId,
                NumberOfChairs = updateWagonModel.NumberOfChairs,
                Chairs         = updateWagonModel.Chairs
                                 .Select(x => new ChairModel()
                {
                    NearWindow = x.NearWindow, Number = x.Number, Reserved = x.Reserved
                })
                                 .ToList()
            };

            await _wagonService.UpdateWagonAsync(wagonModel);

            return(Ok());
        }
Exemple #3
0
        public async Task <ActionResult <WagonModel> > CreateWagonAsync(CreateWagonModel createWagonModel)
        {
            var wagonModel = new WagonModel
            {
                NumberOfChairs = createWagonModel.NumberOfChairs,
            };
            var createdWagon = await _wagonService.CreateWagonAsync(wagonModel);

            return(CreatedAtAction(nameof(GetWagonAsync), new { wagonId = createdWagon.WagonId }, createdWagon));
        }
Exemple #4
0
        public async Task <ActionResult <WagonModel> > CreateWagonAsync(CreateWagonModel createWagonModel)
        {
            if (String.IsNullOrEmpty(createWagonModel.TrainId.ToString()))
            {
                return(NotFound("Missing selected Train!"));
            }
            var wagonModel = new WagonModel
            {
                NumberOfChairs = createWagonModel.NumberOfChairs,
                TrainId        = createWagonModel.TrainId
            };

            var createdWagon = await _wagonService.CreateWagonAsync(wagonModel);

            return(CreatedAtAction(nameof(GetWagonAsync), new { wagonId = createdWagon.WagonId }, createdWagon));
        }
Exemple #5
0
        public async void GetWagon_ReturnsOkResult_WhenWagonIsFound()
        {
            // Arrange
            var wagonService    = Substitute.For <IWagonService>();
            var wagonController = new WagonController(wagonService);

            var wagon = new WagonModel
            {
                WagonId        = 1,
                NumberOfChairs = 2,
                Chairs         = null
            };

            wagonService.GetWagonAsync(wagon.WagonId).Returns(Task.FromResult <WagonModel>(wagon));

            // Act
            var result = await wagonController.GetWagonAsync(wagon.WagonId);

            // Assert
            Assert.IsType <OkObjectResult>(result.Result);
        }
Exemple #6
0
        public async Task <WagonModel> CreateWagonAsync(WagonModel wagonModel)
        {
            if (wagonModel is null || String.IsNullOrEmpty(wagonModel.TrainId.ToString()))
            {
                throw new ArgumentNullException(nameof(wagonModel));
            }

            var chairs = new List <Data.Entities.Chair>();

            for (int i = 1; i < wagonModel.NumberOfChairs + 1; i++)
            {
                chairs.Add(new Data.Entities.Chair {
                    NearWindow = false, Number = i, Reserved = false
                });
            }

            var wagonEntity = new Data.Entities.Wagon
            {
                Chairs  = chairs,
                TrainId = wagonModel.TrainId
            };

            wagonEntity = await _wagonRepository.AddAsync(wagonEntity);

            var listChairs = wagonEntity.Chairs
                             .Select(x => new ChairModel()
            {
                ChairId = x.ChairId, NearWindow = x.NearWindow, Number = x.Number, Reserved = x.Reserved, WagonId = x.WagonId
            })
                             .ToList();

            return(new WagonModel
            {
                WagonId = wagonEntity.WagonId,
                NumberOfChairs = wagonEntity.Chairs.Count,
                TrainId = wagonEntity.TrainId,
                Chairs = listChairs
            });
        }