public void Cant_have_2_carnivores_in_one_trainWagon() { // Arrange TrainWagon w = new TrainWagon(); // Act w.AddAnimal(new Animal(Animal.AnimalType.Meat, Animal.AnimalSize.Medium)); // Assert Assert.AreEqual(false, w.AddAnimalIfSafe(new Animal(Animal.AnimalType.Meat, Animal.AnimalSize.Medium), w)); }
public void Cant_go_over_the_trainWagon_capacity() { // Arrange TrainWagon w = new TrainWagon(); // Act w.AddAnimal(new Animal(Animal.AnimalType.Meat, Animal.AnimalSize.Large)); w.AddAnimal(new Animal(Animal.AnimalType.Meat, Animal.AnimalSize.Medium)); w.AddAnimal(new Animal(Animal.AnimalType.Meat, Animal.AnimalSize.Small)); // Assert Assert.AreEqual(false, w.EnoughCapacity(w.getSize(), (int)Animal.AnimalSize.Large, 10)); }
/// <summary> /// Добавление вагона к поезду /// </summary> /// <param name="trainId"></param> /// <param name="wagonType"></param> public static async Task AddWagonToTrain(int trainId, WagonType wagonType) { var wagon = new Wagon(); wagon.WagonType = (byte)wagonType; wagon.WagonNum = GetWagonNumber(trainId); ContextKeeper.Wagons.Add(wagon); var trainWagon = new TrainWagon(); trainWagon.WagonId = wagon.Id; trainWagon.TrainId = trainId; ContextKeeper.TrainWagons.Add(trainWagon); await Task.Run(() => AddSeatsToWagonAsync(wagon.Id, wagonType)); }
public void Can_add_animal_to_trainWagon() { // Arrange TrainWagon w = new TrainWagon(); bool Filled = false; // Act w.AddAnimal(new Animal(Animal.AnimalType.Meat, Animal.AnimalSize.Large)); if (w.getSize() != 0) { Filled = true; } // Assert Assert.IsTrue(Filled); }
public async Task<IActionResult> CreateWagonInformation(List<Wagon> wagons, List<int?> numberOfSeats) { try { await using var transaction = dbContext.Database.BeginTransaction(); var trainWagons = dbContext.TrainWagon .Where(x => x.IdTrain == int.Parse(Request.Cookies["idTrain"])).ToList(); var nextTravelCount = 1; if (trainWagons.Count > 0) { for (int i = 0; i < trainWagons.Count; i++) { if (nextTravelCount == trainWagons[i].TrainTravelCount) { nextTravelCount++; } } } var trainWagon = new TrainWagon { IdTrain = int.Parse(Request.Cookies["idTrain"]), TrainTravelCount = nextTravelCount }; await dbContext.TrainWagon.AddAsync(trainWagon); await dbContext.SaveChangesAsync(); var wagonEntities = new List<Wagon>(); for (int i = 0; i < wagons.Count; i++) { wagonEntities.Add(new Wagon { IdTrainWagon = trainWagon.IdTrainWagon, WagonNumber = int.Parse($"{i + 1}"), IdWagonType = wagons[i].IdWagonType }); } await dbContext.Wagon.AddRangeAsync(wagonEntities); await dbContext.SaveChangesAsync(); var seats = new List<Seat>(); for (int i = 0; i < wagonEntities.Count; i++) { for (int j = 1; j <= numberOfSeats[i]; j++) { seats.Add(new Seat { IdWagon = wagonEntities[i].IdWagon, Seat1 = j, SeatAvailability = true }); } } await dbContext.Seat.AddRangeAsync(seats); await dbContext.SaveChangesAsync(); var tickets = new List<Ticket>(); var time = DateTime.Parse(Request.Cookies["ticketDate"]).ToString("G"); for (int i = 0; i < seats.Count; i++) { tickets.Add(new Ticket { IdSeat = seats[i].IdSeat, IdTrainDepartureTown = int.Parse(Request.Cookies["idDepartureTown"]), IdTrainArrivalTown = int.Parse(Request.Cookies["idArrivalTown"]), TicketDate = DateTime.Parse(time), TicketTravelTime = TimeSpan.Parse(Request.Cookies["ticketTravelDuration"]) }); } await dbContext.Ticket.AddRangeAsync(tickets); await dbContext.SaveChangesAsync(); await transaction.CommitAsync(); return RedirectToAction("Index"); } catch { return NotFound(); } }