Exemplo n.º 1
0
        public async Task <ActionResult> UpdateDateAsync(int id, SaveDateDTO saveDateDTO)
        {
            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." }));
            }

            // Check departureDate of date exists except self
            var dateExist = await _unitOfWork.Dates.FindAsync(d =>
                                                              d.DepartureDate == Convert.ToDateTime(saveDateDTO.DepartureDate) &&
                                                              d.Id != id);

            if (dateExist.Count() != 0)
            {
                return(BadRequest(new { DepartureDate = "Ngày khởi hành này đã tồn tại." }));
            }

            // Mapping: SaveDate
            _mapper.Map <SaveDateDTO, Date>(saveDateDTO, date);

            await _unitOfWork.CompleteAsync();

            return(Ok(new { success = true, data = date, message = "Sửa thành công" }));
        }
Exemplo n.º 2
0
        public async Task <ActionResult> AddDateAsync(SaveDateDTO saveDateDTO)
        {
            // Mapping: SaveDate
            var date = _mapper.Map <SaveDateDTO, Date>(saveDateDTO);

            DateTime departureDate = Convert.ToDateTime(date.DepartureDate);

            // Check date exists
            var dateTemp = await _unitOfWork.Dates.FindAsync(d =>
                                                             d.DepartureDate == departureDate);

            if (dateTemp.Count() > 0)
            {
                return(BadRequest(new { DepartureDate = "Ngày khởi hành này đã tồn tại." }));
            }

            // Nếu có thêm các chuyến bay cho ngày
            if (date.DateFlights != null)
            {
                var flights = await _unitOfWork.Flights.GetAllAsync();

                // Thêm ghế còn lại và trạng thái cho chuyến bay
                foreach (var dateFlight in date.DateFlights)
                {
                    dateFlight.SeatsLeft = flights.Where(f =>
                                                         f.Id == dateFlight.FlightId)
                                           .Select(f => f.SeatsCount)
                                           .SingleOrDefault();
                    dateFlight.Status = 1; // Còn chỗ
                }
            }

            await _unitOfWork.Dates.AddAsync(date);

            await _unitOfWork.CompleteAsync();

            return(Ok(new { success = true, message = "Thêm thành công." }));
        }
Exemplo n.º 3
0
        public async Task <ActionResult> PostDateAsync(SaveDateDTO saveDateDTO)
        {
            var res = await _service.AddDateAsync(saveDateDTO);

            return(res);
        }
Exemplo n.º 4
0
        public async Task <ActionResult> PutDateAsync(int id, SaveDateDTO saveDateDTO)
        {
            var date = await _service.UpdateDateAsync(id, saveDateDTO);

            return(date);
        }