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()); } }
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()); } }
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); }
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)); }
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()); } }
public void RemoveSeat(FlightSeat seat) { context.FlightSeats.Remove(seat); }
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); }