Exemple #1
0
        public async Task <IActionResult> CreateItem([FromBody] PriceListItemDTO model)
        {
            if (ModelState.IsValid)
            {
                var user = await AvioAdminService.GetCurrentUser();

                if (user != null)
                {
                    var avioCompany = await AvioService.GetCompany(user.AvioCompanyId);

                    if (avioCompany != null)
                    {
                        PriceListItem item = new PriceListItem()
                        {
                            Name  = model.Name,
                            Price = model.Price
                        };

                        avioCompany.PriceList.Add(item);
                        await AvioService.UpdateCompany(avioCompany);

                        return(Ok(200));
                    }

                    return(BadRequest("Company wasn't found."));
                }

                return(Unauthorized("You must log in as an administrator of this company."));
            }

            return(BadRequest("Not enough data provided."));
        }
Exemple #2
0
        public async Task <IActionResult> UpdateCompanyProfile([FromBody] AvioCompanyProfile model)
        {
            if (ModelState.IsValid)
            {
                var user = await AvioAdminService.GetCurrentUser();

                if (user != null)
                {
                    var avioCompany = await AvioService.GetCompany(user.AvioCompanyId);

                    if (avioCompany != null)
                    {
                        var avioCompanyProfile = await AvioService.GetCompanyProfile(avioCompany.AvioCompanyProfileId);

                        avioCompanyProfile.Name             = model.Name;
                        avioCompanyProfile.Address          = model.Address;
                        avioCompanyProfile.PromoDescription = model.PromoDescription;

                        await AvioService.UpdateCompanyProfile(avioCompanyProfile);

                        return(Ok(200));
                    }

                    return(BadRequest("Avio company not found."));
                }

                return(Unauthorized("You must log in as an administrator of this company."));
            }

            return(BadRequest("Not enough data provided."));
        }
Exemple #3
0
        public async Task <IActionResult> RemoveItem(long id)
        {
            if (ModelState.IsValid)
            {
                var user = await AvioAdminService.GetCurrentUser();

                if (user != null)
                {
                    var avioCompany = await AvioService.GetCompany(user.AvioCompanyId);

                    if (avioCompany != null)
                    {
                        var item = avioCompany.PriceList.Where(t => t.PriceListIdemId == id).SingleOrDefault();

                        if (item != null)
                        {
                            await PriceListItemService.RemovePriceListItem(item);

                            return(Ok(200));
                        }

                        return(NotFound("Item not found."));
                    }

                    return(BadRequest("Company wasn't found."));
                }

                return(Unauthorized("You must log in as an administrator of this company."));
            }

            return(BadRequest("No sufficient data provided."));
        }
Exemple #4
0
        public async Task <IActionResult> RemoveTicket(long id)
        {
            if (ModelState.IsValid)
            {
                var user = await AvioAdminService.GetCurrentUser();

                if (user != null)
                {
                    var avioCompany = await AvioService.GetCompany(user.AvioCompanyId);

                    if (avioCompany != null)
                    {
                        var ticket = avioCompany.FastReservationTickets.Where(t => t.FRFTId == id).SingleOrDefault();

                        if (ticket != null)
                        {
                            await FastReservationFlightTicketService.RemoveTicket(ticket);

                            return(Ok(200));
                        }

                        return(NotFound("Ticket not found."));
                    }
                    else
                    {
                        return(BadRequest("Company wasn't found."));
                    }
                }
            }

            return(BadRequest("No sufficient data provided."));
        }
Exemple #5
0
        public async Task <IActionResult> RemoveFlight(long id)
        {
            if (ModelState.IsValid)
            {
                var user = await AvioAdminService.GetCurrentUser();

                if (user != null)
                {
                    var avioCompany = await AvioService.GetCompany(user.AvioCompanyId);

                    if (avioCompany != null)
                    {
                        var flight = avioCompany.Flights.Where(f => f.FlightId == id).SingleOrDefault();

                        if (flight != null)
                        {
                            await FlightService.RemoveFlight(flight);

                            return(Ok(200));
                        }

                        return(NotFound("Flight not found."));
                    }

                    return(BadRequest("Company wasn't found."));
                }

                return(Unauthorized("You must log in as an administrator of this company."));
            }

            return(BadRequest("No sufficient data provided."));
        }
Exemple #6
0
        public async Task <IActionResult> GetCompanyReport()
        {
            if (ModelState.IsValid)
            {
                var user = await AvioAdminService.GetCurrentUser();

                if (user != null)
                {
                    var avioCompany = await AvioService.GetCompany(user.AvioCompanyId);

                    if (avioCompany != null)
                    {
                        var companyRating = await AvioService.GetAverageCompanyRating(avioCompany.AvioCompanyId);

                        var flightRating = await AvioService.GetAverageFlightRating(avioCompany.AvioCompanyId);

                        var graph = await AvioService.GetLastMonthsSoldTickets(avioCompany.AvioCompanyId, 6);

                        var revenue = await AvioService.GetRevenue(avioCompany.AvioCompanyId);

                        return(Ok(new { companyRating, flightRating, graph, revenue }));
                    }
                }
            }

            ModelState.AddModelError("", "Cannot retrieve user data.");
            return(BadRequest(ModelState));
        }
Exemple #7
0
        public async Task <IActionResult> CreateFlight([FromBody] FlightDTO model)
        {
            if (ModelState.IsValid)
            {
                if (model.Departure > model.Arrival)
                {
                    return(BadRequest("Departure cannot be before landing."));
                }

                if (model.Departure < DateTime.Now)
                {
                    return(BadRequest("Departure cannot be before today's date."));
                }

                var user = await AvioAdminService.GetCurrentUser();

                if (user != null)
                {
                    var avioCompany = await AvioService.GetCompany(user.AvioCompanyId);

                    if (avioCompany != null)
                    {
                        model.DepartureLocation.DestinationId = 0;
                        model.ArrivalLocation.DestinationId   = 0;
                        foreach (Destination d in model.Transit)
                        {
                            d.DestinationId = 0;
                        }

                        var flight = new Flight()
                        {
                            AeroplaneId       = (await AeroplaneService.GetAeroplane(user.AvioCompanyId, model.Aeroplane)).AeroplaneId,
                            Arrival           = model.Arrival,
                            ArrivalLocation   = model.ArrivalLocation,
                            Departure         = model.Departure,
                            DepartureLocation = model.DepartureLocation,
                            AvioCompanyId     = user.AvioCompanyId,
                            Price             = model.Price,
                            Transit           = model.Transit,
                            TravelDistance    = model.TravelDistance,
                            TravelTime        = model.TravelTime
                        };

                        avioCompany.Flights.Add(flight);
                        await AvioService.UpdateCompany(avioCompany);

                        return(Ok(200));
                    }

                    return(BadRequest("Avio company not found."));
                }

                return(Unauthorized("You must log in as an administrator of this company."));
            }

            return(BadRequest("Not enough data provided."));
        }
Exemple #8
0
        public async Task <IActionResult> GetCompanyProfile()
        {
            if (ModelState.IsValid)
            {
                var user = await AvioAdminService.GetCurrentUser();

                if (user != null)
                {
                    var avioCompany = await AvioService.GetCompany(user.AvioCompanyId);

                    if (avioCompany != null)
                    {
                        var avioCompanyProfile = await AvioService.GetCompanyProfile(avioCompany.AvioCompanyProfileId);

                        return(Ok(new { avioCompany, avioCompanyProfile }));
                    }
                }
            }

            ModelState.AddModelError("", "Cannot retrieve user data.");
            return(BadRequest(ModelState));
        }
Exemple #9
0
        public async Task <IActionResult> CreateTicket([FromBody] FastReservationFlightTicketDTO ticket)
        {
            if (ModelState.IsValid)
            {
                var user = await AvioAdminService.GetCurrentUser();

                if (user != null)
                {
                    var avioCompany = await AvioService.GetCompany(user.AvioCompanyId);

                    if (avioCompany != null)
                    {
                        FastReservationFlightTicket frft = new FastReservationFlightTicket()
                        {
                            FlightId = ticket.FlightId,
                            Percent  = ticket.Percent
                        };

                        if ((await FlightService.GetFlight(frft.FlightId)) == null)
                        {
                            return(BadRequest("Flight not found."));
                        }

                        avioCompany.FastReservationTickets.Add(frft);
                        await AvioService.UpdateCompany(avioCompany);

                        return(Ok(200));
                    }

                    return(BadRequest("Company wasn't found."));
                }

                return(Unauthorized("You must log in as an administrator of this company."));
            }

            return(BadRequest("Not enough data provided."));
        }