Example #1
0
        public IEnumerable <Flight> GetFlights(DateTime toDay, City fromPlace, City toPlace)
        {
            var getFlightRequest = new GetFlightRequest
            {
                fromPlace = fromPlace.Name,
                toPlace   = toPlace.Name,
                toDay     = toDay
            };

            //FlightCompany FlightCompany = UnitOfWork.FlightCompanyRepository.Get().FirstOrDefault();
            FlightCompany FlightCompany = new FlightCompany
            {
                APIURLToGetFlights = "http://demo4736431.mockable.io/GetFlights"
            };
            List <Flight> ListOfFlights = new List <Flight>();

            var consumerFlights = new Consumer <GetFlightResponse>();

            GetFlightResponse getFlightResponse = consumerFlights.ReLoadEntities(FlightCompany.APIURLToGetFlights, "POST", getFlightRequest).Result;

            foreach (var item in getFlightResponse.CommercialFlights)
            {
                var auxFlight = new Flight
                {
                    Id_Flight        = item.idFlight,
                    DepartureDate    = item.Deport,
                    ArrivedDate      = item.Arrive,
                    Price            = item.Price,
                    NotReservedSeats = item.Disponible_Places,
                };
                ListOfFlights.Add(auxFlight);
            }
            return(ListOfFlights);
        }
Example #2
0
        public void SetToBackFlightReservationToNewTravelPackage(TravelPackage travelPackage)
        {
            var reservationFlightRequest = new FlightReservationsToTravelPackageRequest
            {
                FlightID  = travelPackage.ToBackFlight.Id_Flight,
                SeatCount = travelPackage.ReservationAmount
            };

            FlightCompany FlightCompany = UnitOfWork.FlightCompanyRepository.GetByID(travelPackage.ToBackFlight.Id_Flight);

            var consumerFlights = new Consumer <List <FlightReservationsToTravelPackageResponse> >();

            List <FlightReservationsToTravelPackageResponse> getSeatsResponse = consumerFlights.ReLoadEntities(FlightCompany.APIURLToReserveSeatsToTravelPackage, "POST", reservationFlightRequest).Result;

            foreach (var item in getSeatsResponse)
            {
                var auxSeat = new ReservedSeat()
                {
                    Id_Flight       = item.Id_Flight,
                    Id_ReservedSeat = item.Id_Seat,
                    Flight          = UnitOfWork.FlightRepository.GetByID(item.Id_Flight)
                };
                auxSeat.Flight.ReservedSeat.Add(auxSeat);
                UnitOfWork.ReservedSeatRepository.Insert(auxSeat);
                UnitOfWork.FlightRepository.Update(auxSeat.Flight);
            }
            UnitOfWork.Save();
        }
Example #3
0
        public async Task <IActionResult> PutFlightCompany(int id, FlightCompany flightCompany)
        {
            if (id != flightCompany.ID)
            {
                return(BadRequest());
            }

            _context.Entry(flightCompany).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!FlightCompanyExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Example #4
0
        public async Task <ActionResult <FlightCompany> > AddFlightCompany(FlightCompany flightCompany)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (ValidateModel(flightCompany, true))
            {
                var flightCompanyRet = await flightCompanyRepo.AddFlightCompany(_context, flightCompany);

                if (flightCompanyRet == null)
                {
                    return(BadRequest());
                }
                return(CreatedAtAction("GetFlightCompany", new { id = flightCompany.id }, flightCompany));
                //_context.FlightCompanies.Add(flightCompany);

                //await _context.SaveChangesAsync();

                //return CreatedAtAction("GetFlightCompany", new { id = flightCompany.id }, flightCompany);
            }
            else
            {
                return(BadRequest());
            }
        }
Example #5
0
        public void SetToBackFlightReservationToNewTravelPackage(TravelPackage travelPackage)
        {
            var reservationFlightRequest = new FlightReservationsToTravelPackageRequest
            {
                FlightID  = travelPackage.ToBackFlight.Id_Flight,
                SeatCount = travelPackage.ReservationAmount
            };

            //FlightCompany FlightCompany = UnitOfWork.FlightCompanyRepository.GetByID(travelPackage.ToGoFlight.Id_Flight);

            FlightCompany FlightCompany = new FlightCompany
            {
                APIURLToReserveSeatsToTravelPackage = "http://demo4736431.mockable.io/ReserveFlightSeat"
            };
            var consumerFlights = new Consumer <List <FlightReservationsToTravelPackageResponse> >();

            List <FlightReservationsToTravelPackageResponse> getSeatsResponse = consumerFlights.ReLoadEntities(FlightCompany.APIURLToReserveSeatsToTravelPackage, "GET", reservationFlightRequest).Result;

            foreach (var item in getSeatsResponse)
            {
                var auxSeat = new FlightReservedSeat()
                {
                    Id_ReservedSeat = item.Id_Seat,
                    Flight          = UnitOfWork.FlightRepository.GetByID(item.Id_Flight),
                    TravelPackage   = travelPackage,
                    Available       = true
                };
                auxSeat.Flight.ReservedSeat.Add(auxSeat);
                UnitOfWork.ReservedSeatRepository.Insert(auxSeat);
                UnitOfWork.FlightRepository.Update(auxSeat.Flight);
            }
            UnitOfWork.Save();
        }
Example #6
0
        public async Task <FlightReservation> UpdateFlightReservation(MAANPP20ContextFlight _context, FlightReservation flightReservation)
        {
            Flight flight = await _context.Flights.Where(x => x.deleted == false)
                            .Include(ocene => ocene.ocene)
                            .FirstOrDefaultAsync(id => id.id == flightReservation.flightId);

            if (flight == null)
            {
                return(null);
            }
            if (flightReservation.ocenaLeta > 0)
            {
                DoubleForICollection doubleForICollection = new DoubleForICollection();
                doubleForICollection.DoubleValue = flightReservation.ocenaLeta;
                flight.ocene.Add(doubleForICollection);
                _context.Entry(flight).State = EntityState.Modified;
            }

            if (flightReservation.ocenaKompanije > 0)
            {
                FlightCompany flightCompany = await _context.FlightCompanies.Where(x => x.deleted == false)
                                              .Include(ocene => ocene.ocene)
                                              .FirstOrDefaultAsync(id => id.id == flight.idCompany);

                if (flightCompany == null)
                {
                    return(null);
                }
                DoubleForICollection doubleForICollection = new DoubleForICollection();
                doubleForICollection.DoubleValue = flightReservation.ocenaKompanije;
                flightCompany.ocene.Add(doubleForICollection);
                _context.Entry(flightCompany).State = EntityState.Modified;
            }

            _context.Entry(flightReservation).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!FlightReservationExists(_context, flightReservation.id))
                {
                    return(null);
                }
                else
                {
                    throw;
                }
            }

            return(flightReservation);
        }
        public async Task CreateAsync(FlightCompanyInputModel inputModel)
        {
            var company = new FlightCompany
            {
                Name = inputModel.Name,
            };

            await this.flightCompaniesRepository.AddAsync(company);

            await this.flightCompaniesRepository.SaveChangesAsync();
        }
Example #8
0
        public async Task <ActionResult <FlightCompany> > PostFlightCompany(FlightCompany flightCompany)
        {
            var user = await _context.ApplicationUsers.FindAsync(flightCompany.UserID);

            user.Role = "FlightAdministrator";

            _context.Entry(user).State = EntityState.Modified;
            _context.SaveChanges();

            _context.FlightCompanies.Add(flightCompany);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetFlightCompany", new { id = flightCompany.ID }, flightCompany));
        }
Example #9
0
        public async Task <IActionResult> UpdateFlightCompany(FlightCompany flightCompany)
        {
            if (ValidateModel(flightCompany, false))
            {
                var flightCompanyRet = await flightCompanyRepo.UpdateFlightCompany(_context, flightCompany);

                if (flightCompany == null)
                {
                    return(NotFound());
                }
                return(Ok());
                //if (flightCompany.admin != null)
                //{
                //    flightCompany.admin.serviceId = flightCompany.id;
                //    _context.Entry(flightCompany.admin).State = EntityState.Modified;
                //}

                //_context.Entry(flightCompany.address).State = EntityState.Modified;
                //_context.Entry(flightCompany).State = EntityState.Modified;

                //try
                //{
                //    await _context.SaveChangesAsync();
                //}
                //catch (DbUpdateConcurrencyException)
                //{
                //    if (!FlightCompanyExists(flightCompany.id))
                //    {
                //        return NotFound();
                //    }
                //    else
                //    {
                //        throw;
                //    }
                //}

                //return Ok();
            }
            else
            {
                return(BadRequest());
            }
        }
Example #10
0
        private bool ValidateModel(FlightCompany flightCompany, bool isPost)
        {
            // ako je prilikom kreiranja komapnije dodato nesto u neku od listi, posto to iz osnovne forme ne moze!
            if ((flightCompany.destinations.Count != 0 || flightCompany.flights.Count != 0 || flightCompany.ocene.Count != 0) && isPost)
            {
                return(false);
            }

            // ima grada i ime drzave moze biti isto,
            // ali ne moze biti ime ulice i broj identicno kao ime grada ili drzave
            if ((flightCompany.address.city == flightCompany.address.streetAndNumber) ||
                (flightCompany.address.country == flightCompany.address.streetAndNumber))
            {
                return(false);
            }

            // provera da li su sva slova, broj ili razmak
            foreach (var character in flightCompany.name)
            {
                if (!Char.IsLetter(character))
                {
                    if (!Char.IsWhiteSpace(character))
                    {
                        if (!Char.IsNumber(character))
                        {
                            return(false);
                        }
                    }
                }
            }

            // prilikom POST i PUT ne moze se logicki obrisati jer to je namenjeno za DELETE!
            if (flightCompany.deleted == true)
            {
                return(false);
            }

            return(true);
        }
Example #11
0
        public async Task <FlightCompany> UpdateFlightCompany(MAANPP20ContextFlight _context, FlightCompany flightCompany)
        {
            if (flightCompany.admin != null)
            {
                flightCompany.admin.serviceId             = flightCompany.id;
                _context.Entry(flightCompany.admin).State = EntityState.Modified;
            }

            _context.Entry(flightCompany.address).State = EntityState.Modified;
            _context.Entry(flightCompany).State         = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!FlightCompanyExists(_context, flightCompany.id))
                {
                    return(null);
                }
                else
                {
                    throw;
                }
            }

            return(flightCompany);
        }
Example #12
0
        public async Task <ActionResult <FlightCompany> > AddFlightCompany(MAANPP20ContextFlight _context, FlightCompany flightCompany)
        {
            _context.FlightCompanies.Add(flightCompany);

            await _context.SaveChangesAsync();

            return(flightCompany);
        }