Пример #1
0
        public void ChangeTicket(TicketDTO changedTicket)
        {
            //todo ceva
            using (var ctx = new SkyScannerContext())
            {
                var oldTicket = ctx.Tickets.FirstOrDefault(x => x.TicketId == changedTicket.TicketId);

                oldTicket.FlightScheduleId = changedTicket.FlightScheduleId;
                oldTicket.SeatId           = changedTicket.SeatId;
                oldTicket.UserId           = changedTicket.UserId;
                oldTicket.Name             = changedTicket.Name;
                oldTicket.CNP      = changedTicket.CNP;
                oldTicket.Comments = changedTicket.Comments;

                var oldAddress = ctx.Addresses.FirstOrDefault(x => x.AddressId == oldTicket.AddressId);

                if (oldAddress.Country != changedTicket.Address.Country || oldAddress.City != changedTicket.Address.City ||
                    oldAddress.Street != changedTicket.Address.Street || oldAddress.Number != changedTicket.Address.Number)
                {
                    var addressId = _addressService.AddAddress(changedTicket.Address);
                    oldTicket.AddressId = addressId;
                }

                ctx.SaveChanges();
            }
        }
Пример #2
0
        public void UpdateUser(UserDTO updateUser)
        {
            using (var ctx = new SkyScannerContext())
            {
                var id   = updateUser.UserId;
                var user = ctx.Users.FirstOrDefault(x => x.UserId == id);

                if (updateUser.UserName != null)
                {
                    user.UserName = updateUser.UserName;
                }

                if (updateUser.UserEmail != null)
                {
                    user.UserEmail = updateUser.UserEmail;
                }

                if (updateUser.UserPassword != null)
                {
                    user.UserPassword = updateUser.UserPassword;
                }

                ctx.SaveChanges();
            }
        }
Пример #3
0
 public FlightScheduleDTO GetFlightById(int flightId)
 {
     using (var ctx = new SkyScannerContext())
     {
         var flight = ctx.FlightSchedules.Include(x => x.Company).Include(x => x.DepartureAirport).Include(x => x.ArrivalAirport).FirstOrDefault(x => x.FlightScheduleId == flightId);
         return(Mapper.Map <FlightScheduleDTO>(flight));
     }
 }
Пример #4
0
 public List <SeatListDTO> GetAllSeatsAvailable(int flightScheduleId)
 {
     using (var ctx = new SkyScannerContext())
     {
         var allSeatsAvailable = ctx.SeatLists.Where(x => x.FlightScheduleId == flightScheduleId && x.Available == true).ToList();
         return(Mapper.Map <List <SeatListDTO> >(allSeatsAvailable));
     }
 }
Пример #5
0
 public void DeleteFlightFromShortList(int shortListId)
 {
     using (var ctx = new SkyScannerContext())
     {
         var shortList = ctx.ShortLists.FirstOrDefault(x => x.ShortListId == shortListId);
         ctx.ShortLists.Remove(shortList);
         ctx.SaveChanges();
     }
 }
Пример #6
0
 public void DeleteFlightFromShortList(int userId, int flightId)
 {
     using (var ctx = new SkyScannerContext())
     {
         var shortList = ctx.ShortLists.FirstOrDefault(x => x.UserId == userId && x.FlightScheduleId == flightId);
         ctx.ShortLists.Remove(shortList);
         ctx.SaveChanges();
     }
 }
Пример #7
0
 public void AddUser(UserDTO newUserDTO)
 {
     using (var ctx = new SkyScannerContext())
     {
         var newUser = Mapper.Map <UserDTO, User>(newUserDTO);
         ctx.Users.Add(newUser);
         ctx.SaveChanges();
     }
 }
Пример #8
0
 public void DeleteUser(int userId)
 {
     using (var ctx = new SkyScannerContext())
     {
         var user = ctx.Users.FirstOrDefault(x => x.UserId == userId);
         ctx.Users.Remove(user);
         ctx.SaveChanges();
     }
 }
Пример #9
0
 public List <FlightScheduleDTO> GetAllFlights()
 {
     using (var ctx = new SkyScannerContext())
     {
         var allFlights    = ctx.FlightSchedules.Include(x => x.Company).Include(x => x.DepartureAirport).Include(x => x.ArrivalAirport).ToList();
         var allFlightsDTO = Mapper.Map <List <FlightScheduleDTO> >(allFlights);
         return(Mapper.Map <List <FlightScheduleDTO> >(allFlights));
     }
 }
Пример #10
0
 public void AddFlightOnShortList(int userId, int flightId)
 {
     using (var ctx = new SkyScannerContext())
     {
         var newShortList = new ShortList();
         newShortList.UserId           = userId;
         newShortList.FlightScheduleId = flightId;
         ctx.ShortLists.Add(newShortList);
         ctx.SaveChanges();
     }
 }
Пример #11
0
 public int AddAddress(AddressDTO newAddressDTO)
 {
     using (var ctx = new SkyScannerContext())
     {
         var newAddress = Mapper.Map <AddressDTO, Address>(newAddressDTO);
         ctx.Addresses.Add(newAddress);
         ctx.SaveChanges();
         var newAddressId = ctx.Addresses.AsNoTracking().FirstOrDefault(x => x.Country == newAddress.Country && x.City == newAddress.City &&
                                                                        x.Street == newAddress.Street && x.Number == newAddress.Number).AddressId;
         return(newAddressId);
     }
 }
Пример #12
0
 public List <FlightScheduleDTO> GetAllFlightsForUser(int userId)
 {
     using (var ctx = new SkyScannerContext())
     {
         var allFlights = ctx.ShortLists.Include(x => x.FlightSchedule)
                          .Include(x => x.FlightSchedule.Company)
                          .Include(x => x.FlightSchedule.ArrivalAirport)
                          .Include(x => x.FlightSchedule.DepartureAirport)
                          .Where(x => x.UserId == userId).ToList();
         return(Mapper.Map <List <FlightScheduleDTO> >(allFlights.Select(x => x.FlightSchedule)));
     }
 }
Пример #13
0
 public UserDTO GetUserById(int userId)
 {
     using (var ctx = new SkyScannerContext())
     {
         var user = ctx.Users.FirstOrDefault(x => x.UserId == userId);
         if (user == null)
         {
             throw new EntityNotFoundException("User not found!");
         }
         return(Mapper.Map <UserDTO>(user));
     }
 }
Пример #14
0
        public List <UserDTO> GetAllUsers()
        {
            using (var ctx = new SkyScannerContext())
            {
                var allUsers = ctx.Users.ToList();
                return(Mapper.Map <List <UserDTO> >(allUsers));
            }

            //var result = new List<UserDTO>();
            //var allUsers = _skyScannerContext.Set<User>().ToList();
            //result = Mapper.Map<List<User>, List<UserDTO>>(allUsers);
            //return result;
        }
Пример #15
0
 public List <TicketDTO> GetTicketsForUser(int userId)
 {
     using (var ctx = new SkyScannerContext())
     {
         var allTickets = ctx.Tickets.Include(x => x.Address)
                          .Include(x => x.SeatList)
                          .Include(x => x.FlightSchedule)
                          .Include(x => x.FlightSchedule.Company)
                          .Include(x => x.FlightSchedule.ArrivalAirport)
                          .Include(x => x.FlightSchedule.DepartureAirport)
                          .Where(x => x.UserId == userId)
                          .ToList();
         return(Mapper.Map <List <TicketDTO> >(allTickets));
     }
 }
Пример #16
0
 public void DeleteTicket(int ticketId)
 {
     using (var ctx = new SkyScannerContext())
     {
         var ticket = ctx.Tickets.FirstOrDefault(x => x.TicketId == ticketId);
         //Verificam ca zborul e in mai mult de doua saptamani
         DateTime flightDate     = ctx.FlightSchedules.Where(x => x.FlightScheduleId == ticket.FlightScheduleId).FirstOrDefault().DepartureDT;
         DateTime currentDate    = DateTime.Now;
         var      daysDifference = (flightDate - currentDate).Days;
         if (daysDifference >= 14)
         {
             //Daca stergem un bilet facem ca locul sa redevina available
             ctx.SeatLists.Where(x => x.SeatId == ticket.SeatId).FirstOrDefault().Available = true;
             ctx.Tickets.Remove(ticket);
             ctx.SaveChanges();
         }
     }
 }
Пример #17
0
 public UserDTO CheckUser(UserDTO uncheckedUser)
 {
     using (var ctx = new SkyScannerContext())
     {
         var user = ctx.Users.FirstOrDefault(x => x.UserEmail == uncheckedUser.UserEmail);
         if (user == null)
         {
             throw new EntityNotFoundException("User not found!");
         }
         else
         {
             if (user.UserPassword != uncheckedUser.UserPassword)
             {
                 throw new UnauthorizedAccessException();
             }
         }
         return(Mapper.Map <UserDTO>(user));
     }
 }
Пример #18
0
        public TicketDTO GetTicketById(int ticketId)
        {
            using (var ctx = new SkyScannerContext())
            {
                var ticket = ctx.Tickets
                             .Include(x => x.SeatList)
                             .Include(x => x.FlightSchedule)
                             .Include(x => x.FlightSchedule.Company)
                             .Include(x => x.FlightSchedule.ArrivalAirport)
                             .Include(x => x.FlightSchedule.DepartureAirport)
                             .Include(x => x.Address)
                             .Where(x => x.TicketId == ticketId)
                             .FirstOrDefault();

                //If an user edits a ticket the seat becomes available
                var seat = ctx.SeatLists.Where(x => x.SeatId == ticket.SeatId).FirstOrDefault();
                seat.Available = true;

                ctx.SaveChanges();

                return(Mapper.Map <TicketDTO>(ticket));
            }
        }
Пример #19
0
        public void AddTicket(TicketDTO newTicketDTO)
        {
            using (var ctx = new SkyScannerContext())
            {
                //todo altceva
                //if (newTicketDTO.AddressId == 0)
                //{
                //    var newAddressDTO = newTicketDTO.Address;
                //    var newAddress = Mapper.Map<AddressDTO, Address>(newAddressDTO);
                //    var addedAddress = ctx.Addresses.Add(newAddress);
                //    newTicketDTO.AddressId = addedAddress.AddressId;
                //}

                //Verific daca datele introduse sunt deja salvate in tabela de adrese
                var addressId = 0;
                //var addressId = ctx.Addresses.AsNoTracking().FirstOrDefault(x => x.Country == newTicketDTO.Address.Country && x.City == newTicketDTO.Address.City &&
                //        x.Street == newTicketDTO.Address.Street && x.Number == newTicketDTO.Address.Number).AddressId;
                if (addressId == 0)
                {
                    //Daca nu sunt deja in baza de date adaug o noua adresa
                    addressId = _addressService.AddAddress(newTicketDTO.Address);
                }

                newTicketDTO.AddressId = addressId;
                var newTicket = Mapper.Map <TicketDTO, Ticket>(newTicketDTO);

                //Daca un utilizator cumpara un bilet vam face ca locul respectiv sa nu mai fie isponibil
                var seat = ctx.SeatLists.Where(x => x.SeatId == newTicket.SeatId).FirstOrDefault();
                seat.Available = false;

                //Adaugam biletul
                ctx.Tickets.Add(newTicket);

                //Salvam toate modificarile
                ctx.SaveChanges();
            }
        }