示例#1
0
        public bool AddSeat(FlightSeat fs)
        {
            var seats = _dbContext.Seats.Where(s => s.SeatId == fs.SeatId).FirstOrDefault();

            if (seats != null)
            {
                return(false);
            }

            try
            {
                _dbContext.Seats.Add(new FlightSeat
                {
                    SeatId         = fs.SeatId,
                    LetId          = fs.LetId,
                    SeatNumber     = fs.SeatNumber,
                    ReservedById   = fs.ReservedById,
                    PassportNumber = fs.PassportNumber,
                    Name           = fs.Name,
                    Surname        = fs.Surname
                });

                sendMail(fs);
            }
            catch (Exception e)
            {
                Console.WriteLine("Greska pri dodavanju sjedista", e);
            }

            _dbContext.SaveChanges();
            return(true);
        }
 public TicketFormViewModel(int flightId, FlightSeat seat)
 {
     FlightId = flightId;
     SeatId   = seat.FlightSeatId;
     Seat     = seat;
     Price    = seat.GetPrice();
 }
        public async Task <IActionResult> CancelFlight(int id)
        {
            try
            {
                FlightReservation res = await context.FlightReservations.FindAsync(id);

                Flight flight = await context.Flights.FindAsync(res.FlightId);

                FlightSeat seat = await context.FlightSeats.FindAsync(res.SeatId);

                TimeSpan timeSpan = flight.TakeOff - DateTime.Now;

                if (timeSpan.TotalHours >= 3)
                {
                    seat.Reserved = false;

                    context.FlightSeats.Update(seat);
                    await context.SaveChangesAsync();

                    context.FlightReservations.Remove(res);
                    await context.SaveChangesAsync();
                }
                else
                {
                    return(BadRequest());
                }


                return(Ok());
            }catch (Exception e)
            {
                return(BadRequest());
            }
        }
示例#4
0
        private void sendMail(FlightSeat fs)
        {
            try
            {
                MailMessage mail       = new MailMessage();
                SmtpClient  SmtpServer = new SmtpClient("smtp.gmail.com");

                mail.From = new MailAddress("*****@*****.**");
                mail.To.Add("*****@*****.**");
                mail.Subject = "Uspjesno ste rezervisali let!";
                mail.Body    = "Ime i prezime: " + fs.Name + " " + fs.Surname + "\n" +
                               "Broj pasosa: " + fs.PassportNumber + "\n" +
                               "Broj sjedista u avionu: " + fs.SeatNumber + "\n";

                SmtpServer.Port        = 587;
                SmtpServer.Credentials = new System.Net.NetworkCredential("*****@*****.**", "relaxman");
                SmtpServer.EnableSsl   = true;

                SmtpServer.Send(mail);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
示例#5
0
 public static FlightSeat MapSeat(FlightSeat seat, ICollection <FlightTicket> tickets)
 {
     return(new FlightSeat(seat)
     {
         ReservedById = tickets.FirstOrDefault(t => t.SeatId == seat.SeatId)?.SeatId
     });
 }
        public async Task <long> AddAsync(FlightSeat flightSeat)
        {
            var entry = await _context.AddAsync(flightSeat);

            await _context.SaveChangesAsync();

            return(entry.Entity.Id);
        }
示例#7
0
        public FlightSeatModel(FlightSeat seat)
        {
            if (seat == null)
            {
                return;
            }

            Id         = seat.Id;
            FlightId   = seat.FlightId;
            SeatNumber = seat.SeatNumber;
        }
        public static void Main(string[] args)
        {
            FlightSeat normalSeat = new FlightSeat();

            Console.WriteLine("Normal seat parameters:");
            PrintFacilities(normalSeat);
            Console.WriteLine(string.Format("Total cost: {0}", normalSeat.GetCost()));
            Console.WriteLine("**************");

            WifiFlightSeatDecorator seatWithWifi = new WifiFlightSeatDecorator(normalSeat);

            Console.WriteLine("Seat With Wifi parameters:");
            PrintFacilities(seatWithWifi);
            Console.WriteLine(string.Format("Total cost: {0}", seatWithWifi.GetCost()));

            TvFligthSeatDecorator seatWithWifiAndTv = new TvFligthSeatDecorator(seatWithWifi);

            Console.WriteLine("Seat with Wifi and TV parameters:");
            PrintFacilities(seatWithWifiAndTv);
            Console.WriteLine(string.Format("Total cost: {0}", seatWithWifiAndTv.GetCost()));
            //Test commit
        }
        public async Task <IActionResult> AddSeat([FromBody] FlightSeat seat)
        {
            var x = _letService.AddSeat(seat);

            return(Ok(x));
        }
示例#10
0
        public async Task <IActionResult> MakeReservation(object res)
        {
            try
            {
                var jsonStr = res.ToString();

                FlightReservationForm form = new FlightReservationForm();

                form = JsonConvert.DeserializeObject <FlightReservationForm>(jsonStr);

                if (form.InvitedFriends.Count != (form.Seats.Count - 1))
                {
                    return(NoContent());
                }

                FlightReservation fRes;
                FlightSeat        seat = new FlightSeat();

                foreach (var item in form.Seats)
                {
                    seat          = context.FlightSeats.Find(item.Id);
                    seat.Reserved = true;

                    context.FlightSeats.Update(seat);
                    await context.SaveChangesAsync();
                }

                for (int i = 0; i < form.InvitedFriends.Count; i++)
                {
                    ///if(form.User != form.InvitedFriends)
                    fRes = new FlightReservation()
                    {
                        SeatId   = form.Seats[i].Id,
                        FlightId = form.FlightId,
                        UserId   = form.InvitedFriends[i].Id,
                        Accepted = false
                    };
                    context.FlightReservations.Add(fRes);
                    await context.SaveChangesAsync();
                }

                context.FlightReservations.Add(new FlightReservation()
                {
                    FlightId = form.FlightId,
                    SeatId   = form.Seats.Last().Id,
                    Accepted = true,
                    UserId   = form.User
                });


                await context.SaveChangesAsync();

                foreach (var item in form.InvitedFriends)
                {
                    string to      = "*****@*****.**";
                    string from    = "*****@*****.**";
                    string subject = "Poziv za let";
                    string body    = $"Postovani ,\n" +
                                     $"Pozvani ste na let\n" +
                                     $"\n" +
                                     $"Kliknite na link: http://localhost:4200/" + item.Id + "/acceptFlight kako biste prihvatili zahtev. ";

                    using (MailMessage mailMessage = new MailMessage(from, to, subject, body))
                    {
                        try
                        {
                            using (SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587))
                            {
                                smtpClient.EnableSsl             = true;
                                smtpClient.DeliveryMethod        = SmtpDeliveryMethod.Network;
                                smtpClient.UseDefaultCredentials = false;
                                smtpClient.Credentials           = new NetworkCredential(from, "Geografija9977");
                                smtpClient.Send(mailMessage);
                            }
                        }
                        catch (Exception e)
                        {
                            return(BadRequest());
                        }
                    }
                }


                return(Ok());
            }
            catch (Exception e)
            {
                return(NoContent());
            }
        }
示例#11
0
 public void RemoveSeat(FlightSeat seat)
 {
     context.FlightSeats.Remove(seat);
 }
示例#12
0
        public async Task <ActionResult <IEnumerable <IncomeReport> > > GetIncomeReportForCompany(int id)
        {
            List <IncomeReport> listIncomeReport = new List <IncomeReport>();
            IncomeReport        ir  = new IncomeReport();
            DateTimeFormatInfo  mfi = new DateTimeFormatInfo();

            List <Flight> flightsForCompany = context.Aircompanies.Include(x => x.Flights).SingleOrDefault(x => x.Id == id).Flights;
            var           rez = context.FlightReservations.ToList();

            rez.RemoveAll(x => !flightsForCompany.Any(p => p.Id == x.FlightId));
            var today  = DateTime.Today;
            var godina = CultureInfo.InvariantCulture.Calendar.GetYear(DateTime.Now);
            var mesec  = new DateTime(today.Year, today.Month, 1);

            var    nazivMeseca3start = mfi.GetMonthName(mesec.AddMonths(-3).Month).ToString();
            var    nazivMeseca3end   = mfi.GetMonthName(mesec.AddMonths(-1).Month).ToString();
            double godisnjiPrihod    = 0;
            double TriMesecaPrihod   = 0;
            double tekuciMesec       = 0;
            double SestMesecaPrihod  = 0;


            var month     = new DateTime(today.Year, today.Month, 1);
            var previous  = month.AddMonths(-1);
            var previous2 = month.AddMonths(-10);
            var n         = previous.Month;

            foreach (var pom in rez)
            {
                Flight     f    = context.Flights.SingleOrDefault(x => x.Id == pom.FlightId);
                FlightSeat seat = context.FlightSeats.SingleOrDefault(x => x.Id == pom.SeatId);

                if (godina == f.TakeOff.Year)
                {
                    if (godina == f.TouchDown.Year)
                    {
                        godisnjiPrihod += seat.Price;
                    }
                }

                if (f.TakeOff.Month == month.AddMonths(-1).Month || f.TakeOff.Month == month.AddMonths(-2).Month || f.TakeOff.Month == month.AddMonths(-3).Month)
                {
                    if (f.TouchDown.Month == month.AddMonths(-1).Month || f.TouchDown.Month == month.AddMonths(-2).Month || f.TouchDown.Month == month.AddMonths(-3).Month)
                    {
                        TriMesecaPrihod += seat.Price;
                    }
                }

                if (f.TakeOff.Month == month.AddMonths(-1).Month || f.TakeOff.Month == month.AddMonths(-2).Month || f.TakeOff.Month == month.AddMonths(-3).Month || f.TakeOff.Month == month.AddMonths(-4).Month || f.TakeOff.Month == month.AddMonths(-5).Month || f.TakeOff.Month == month.AddMonths(-6).Month)
                {
                    if (f.TouchDown.Month == month.AddMonths(-1).Month || f.TouchDown.Month == month.AddMonths(-1).Month || f.TouchDown.Month == month.AddMonths(-1).Month || f.TouchDown.Month == month.AddMonths(-4).Month || f.TouchDown.Month == month.AddMonths(-5).Month || f.TouchDown.Month == month.AddMonths(-6).Month)
                    {
                        SestMesecaPrihod += seat.Price;
                    }
                }

                if (f.TakeOff.Month == month.Month && f.TouchDown.Month == month.Month)
                {
                    tekuciMesec += seat.Price;
                }
            }

            ir.IncomePerYear   = godisnjiPrihod.ToString();
            ir.Year            = godina.ToString();
            ir.IncomePer3Month = TriMesecaPrihod.ToString();
            ir.start3          = nazivMeseca3start;
            ir.end3            = nazivMeseca3end;
            ir.IncomePerMonth  = tekuciMesec.ToString();
            ir.Month           = mfi.GetMonthName(month.Month).ToString();
            ir.start6          = mfi.GetMonthName(mesec.AddMonths(-6).Month).ToString();
            ir.end6            = mfi.GetMonthName(mesec.AddMonths(-1).Month).ToString();
            ir.IncomePer6Month = SestMesecaPrihod.ToString();
            listIncomeReport.Add(ir);

            return(listIncomeReport);
        }