Esempio n. 1
0
        public async Task <ActionResult> AddDateFlightAsync(int id, AddDateFlight values)
        {
            var date = await _unitOfWork.Dates.GetByAsync(id);

            // Check date exists
            if (date == null)
            {
                return(NotFound(new  { Id = "Mã ngày này không tồn tại." }));
            }

            var flights = await _unitOfWork.Flights.GetAllAsync();

            // Thêm thông tin cho chuyến bay: gồm ngày, ghế còn lại, trạng thái
            foreach (var dateFlight in values.DateFlights)
            {
                if (await _unitOfWork.Dates.GetDateFlightAsync(id, dateFlight.FlightId) == null)
                {
                    // Mapping: SaveDateFlight
                    SaveDateFlightDTO saveDateFlightDTO = new SaveDateFlightDTO {
                        FlightId  = dateFlight.FlightId,
                        DateId    = id,
                        SeatsLeft = flights.Where(f =>
                                                  f.Id == dateFlight.FlightId)
                                    .Select(f => f.SeatsCount)
                                    .SingleOrDefault(),
                        Status = 1, // Còn chỗ
                    };
                    var dateFlight1 = _mapper.Map <SaveDateFlightDTO, DateFlight>(saveDateFlightDTO);
                    await _unitOfWork.DateFlights.AddAsync(dateFlight1);
                }
                else
                {
                    // Nếu chuyến bay đã tồn tại trong ngày thì báo tồn tại
                    return(BadRequest(new { success = false, message = "Chuyến bay đã tồn tại trong ngày." }));
                }
            }

            await _unitOfWork.CompleteAsync();

            return(Ok(new { success = true, message = "Thêm thành công." }));
        }
        public async Task <ActionResult> PostFlightAsync(int id, AddDateFlight values)
        {
            var res = await _service.AddDateFlightAsync(id, values);

            return(res);
        }