public async Task <ActionResult> UpdateTicketCategoryAsync(int id, SaveTicketCategoryDTO saveTicketCategoryDTO)
        {
            // Check ticketCategory exists
            var ticketCategory = await _unitOfWork.TicketCategories.GetByAsync(id);

            if (ticketCategory == null)
            {
                return(NotFound(new { Id = "Mã loại vé này không tồn tại." }));
            }

            // Check name of ticketCategory exists except self
            var ticketCategoryExist = await _unitOfWork.TicketCategories.FindAsync(tc =>
                                                                                   tc.Name.ToLower().Equals(saveTicketCategoryDTO.Name.ToLower()) &&
                                                                                   tc.Id != id);

            if (ticketCategoryExist.Count() != 0)
            {
                return(BadRequest(new { Name = "Loại vé này đã tồn tại." }));
            }

            // Mapping: SaveTicketCategory
            _mapper.Map <SaveTicketCategoryDTO, TicketCategory>(saveTicketCategoryDTO, ticketCategory);

            await _unitOfWork.CompleteAsync();

            return(Ok(new { success = true, data = ticketCategory, message = "Sửa thành công." }));
        }
        public async Task <ActionResult> AddTicketCategoryAsync(SaveTicketCategoryDTO saveTicketCategoryDTO)
        {
            // Check ticketCategory exists
            var ticketCategoryExist = await _unitOfWork.TicketCategories.FindAsync(tc =>
                                                                                   tc.Name.ToLower().Equals(saveTicketCategoryDTO.Name.ToLower()));

            if (ticketCategoryExist.Count() != 0)
            {
                return(BadRequest(new { Name = "Loại vé này đã tồn tại." }));
            }

            // Mapping: SaveTicketCategory
            var ticketCategory = _mapper.Map <SaveTicketCategoryDTO, TicketCategory>(saveTicketCategoryDTO);

            await _unitOfWork.TicketCategories.AddAsync(ticketCategory);

            await _unitOfWork.CompleteAsync();

            return(Ok(new { success = true, message = "Thêm thành công." }));
        }
        public async Task <ActionResult> PostTicketCategoryAsync(SaveTicketCategoryDTO saveTicketCategoryDTO)
        {
            var res = await _service.AddTicketCategoryAsync(saveTicketCategoryDTO);

            return(res);
        }
        public async Task <ActionResult> PutTicketCategoryAsync(int id, SaveTicketCategoryDTO saveTicketCategoryDTO)
        {
            var ticketCategory = await _service.UpdateTicketCategoryAsync(id, saveTicketCategoryDTO);

            return(ticketCategory);
        }