public async Task <ActionResult <IList <AirlineFlightDTO> > > GetAllAirlineFlights()
        {
            LoginToken <AirlineCompany> token = GetLoginToken();
            IList <Flight> flights            = null;

            try
            {
                flights = await Task.Run(() => m_facade.GetAllFlights(token));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, $"{{ error: \"{ex.Message}\" }}"));
            }
            if (flights.Count == 0)
            {
                return(StatusCode(204, "{ }"));
            }
            List <AirlineFlightDTO> flightDTOs = new List <AirlineFlightDTO>();

            foreach (Flight flight in flights)
            {
                AirlineFlightDTO flightDTO = m_mapper.Map <AirlineFlightDTO>(flight);
                flightDTOs.Add(flightDTO);
            }
            return(Ok(JsonConvert.SerializeObject(flightDTOs)));
        }
        public async Task <ActionResult <TicketDTO> > PurchaseTicket([FromBody] AirlineFlightDTO flightDTO)
        {
            LoginToken <Customer> token = GetLoginToken();
            Flight flight = m_mapper.Map <Flight>(flightDTO);
            Ticket ticket = null;

            try
            {
                ticket = await Task.Run(() => { return(m_facade.PurchaseTicket(token, flight)); });
            }
            catch (CustomerAlreadyBoughtTicketException ex)
            {
                return(StatusCode(403, $"{{ error: \"{ex.Message}\" }}"));
            }
            catch (OutOfTicketsException ex)
            {
                return(StatusCode(406, $"{{ error: \"{ex.Message}\" }}"));
            }
            catch (WasntActivatedByCustomerException ex)
            {
                return(StatusCode(401, $"{{ error: \"{ex.Message}\" }}"));
            }
            TicketDTO ticketDTO = m_mapper.Map <TicketDTO>(ticket);

            return(Created($"api/Customer/PurchaseTicket/{ticketDTO.Id}", JsonConvert.SerializeObject(ticketDTO)));
        }
Example #3
0
        public async Task <ActionResult <List <AirlineReducedDTO> > > GetAllFlights()
        {
            IList <Flight> flights = await Task.Run(() => m_facade.GetAllFlights());

            List <AirlineFlightDTO> airlineFlightsDTOs = new List <AirlineFlightDTO>();

            foreach (Flight flight in flights)
            {
                AirlineFlightDTO airlineDTO = m_mapper.Map <AirlineFlightDTO>(flight);
                airlineFlightsDTOs.Add(airlineDTO);
            }
            return(Ok(JsonConvert.SerializeObject(airlineFlightsDTOs)));
        }
        public async Task <ActionResult> CancelFlight([FromBody] AirlineFlightDTO airlineFlightDTO)
        {
            LoginToken <AirlineCompany> token = GetLoginToken();
            Flight flight = m_mapper.Map <Flight>(airlineFlightDTO);

            try
            {
                await Task.Run(() => m_facade.CancelFlight(token, flight));
            }
            catch (Exception ex)
            {
                return(StatusCode(400, $"{{ error: \"{ex.Message}\" }}"));
            }
            return(Ok());
        }
        public async Task <ActionResult <AirlineFlightDTO> > CreateNewFlight([FromBody] AirlineFlightDTO airlineFlightDTO)
        {
            LoginToken <AirlineCompany> token = GetLoginToken();
            Flight flight = m_mapper.Map <Flight>(airlineFlightDTO);
            long   id;

            try
            {
                id = await Task.Run(() => m_facade.CreateFlight(token, flight));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, $"{{ error: \"{ex.Message}\" }}"));
            }
            airlineFlightDTO.Id = id;
            AirlineFlightDTO flightDTO = m_mapper.Map <AirlineFlightDTO>(airlineFlightDTO);

            return(Created($"api/Airline/CreateNewFlight/{flightDTO.Id}", JsonConvert.SerializeObject(flightDTO)));
        }
Example #6
0
        public async Task <ActionResult <List <AirlineFlightDTO> > > GetFlightsByOriginCountry(string countryName)
        {
            long id = CountryDTO.ReturnIdFromName(countryName);

            if (id == 0)
            {
                return(StatusCode(400, $"{{ error: \"{"Country name does not exists"}\" }}"));
            }
            IList <Flight> flights = await Task.Run(() => m_facade.GetFlightsByOriginCountry((int)id));

            List <AirlineFlightDTO> airlineFlightsDTOs = new List <AirlineFlightDTO>();

            foreach (Flight flight in flights)
            {
                AirlineFlightDTO airlineDTO = m_mapper.Map <AirlineFlightDTO>(flight);
                airlineFlightsDTOs.Add(airlineDTO);
            }
            return(Ok(JsonConvert.SerializeObject(airlineFlightsDTOs)));
        }