public FormAirplaneClassCE(AirplaneClass airplaneClass = null, FormMode mode = FormMode.CREATE) { InitializeComponent(); // Luu admin account ben FormList truyen sang this.airplaneClass = airplaneClass; // Luu che do (tao moi hay chinh sua) this.mode = mode; }
public IHttpActionResult GetAirplaneClass(int id) { AirplaneClass airplaneClass = db.AirplaneClasses.Find(id); if (airplaneClass == null) { return(NotFound()); } return(Ok(airplaneClass)); }
public IHttpActionResult DeleteAirplaneClass(int id) { AirplaneClass airplaneClass = db.AirplaneClasses.Find(id); if (airplaneClass == null) { return(NotFound()); } db.AirplaneClasses.Remove(airplaneClass); db.SaveChanges(); return(Ok(airplaneClass)); }
private void FormAirplaneClassCE_Load(object sender, EventArgs e) { // Neu la che do chinh sua (Edit) thi hien thi thong tin cua account len form if (mode == FormMode.EDIT) { txtClass.Text = airplaneClass.Class; txtPriceRate.Text = airplaneClass.PriceRate.ToString(); } else { // Neu dang o che do them moi // Tao moi mot class airplaneClass = new AirplaneClass(); // Gan gia tri mac dinh cho ID (ID no se tu tang nen minh khong can phai tao) airplaneClass.ID = 0; // Nhung gia tri khac se duoc gan vao account khi nguoi dung bam nut Submit } }
private AirplaneClass GetSelectedAirplaneClass() { // Neu khong co dong nao dang duoc chon thi tra ve null if (dgvAirplaneClass.SelectedRows.Count != 1) { return(null); } // Neu co 1 dong dang duoc chon thi lay dong do ra DataGridViewRow row = dgvAirplaneClass.SelectedRows[0]; // Lay du lieu trong dong do va tao ra mot AirplaneClass moi AirplaneClass airplaneClass = new AirplaneClass() { ID = Convert.ToInt32(row.Cells["ID"].Value), Class = row.Cells["Class"].Value.ToString(), PriceRate = Convert.ToDouble(row.Cells["PriceRate"].Value) }; // Tra AirplaneClass vua tao ve return(airplaneClass); }
private void btnEdit_Click(object sender, EventArgs e) { // Lay class dang duoc chon trong bang AirplaneClass airplaneClass = GetSelectedAirplaneClass(); // Neu hien tai khong co class nao duoc chon thi hien thong bao if (airplaneClass == null) { MessageBox.Show("You must choose an account to edit!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } // Neu co tai khoan dang duoc chon thi hien form chinh sua thong tin len, truyen du lieu qua FormAirplaneClassCE f = new FormAirplaneClassCE(airplaneClass, HelperClass.FormMode.EDIT); // f.MdiParent = this.MdiParent; // Hien form Edit len va doi cho den khi form bi tat di f.ShowDialog(); // Load lai bang sau khi form Edit da tat LoadDataGridView(); }
public IHttpActionResult PostAirplaneClass(AirplaneClass airplaneClass) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { db.AirplaneClasses.Add(airplaneClass); db.SaveChanges(); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } return(Content(HttpStatusCode.InternalServerError, ex.Message)); } return(CreatedAtRoute("DefaultApi", new { id = airplaneClass.ID }, airplaneClass)); }
public IHttpActionResult PutAirplaneClass(int id, AirplaneClass airplaneClass) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != airplaneClass.ID) { return(BadRequest()); } db.Entry(airplaneClass).State = EntityState.Modified; try { db.SaveChanges(); } catch (Exception ex) { if (!AirplaneClassExists(id)) { return(NotFound()); } else { while (ex.InnerException != null) { ex = ex.InnerException; } return(Content(HttpStatusCode.InternalServerError, ex.Message)); } } return(StatusCode(HttpStatusCode.NoContent)); }
private void AutoGenerateTicket() { // Lay danh sách người dùng List <Profile> lstProfile = ARSMVCUtilities.GetDB().Profiles.ToList(); List <AirplaneClass> lstAirplaneClass = ARSMVCUtilities.GetDB().AirplaneClasses.ToList(); // Lấy danh sách chuyến bay, route, city InitDB(); Random rnd = new Random(); bool skipThisCustomer = false; DateTime currentDate = DateTime.Now; int count = 1; // Chạy từng ngày bắt đầu từ hôm nay tới 15 ngày tiếp theo for (int i = 0; i < 15; i++) { currentDate = DateTime.Now.AddDays(i); // Lặp qua từng người foreach (Profile profile in lstProfile) { // 30% khach dat ve if (rnd.Next(1, 4) != 3) { continue; } int tryChooseFromToCount = 0; // Lấy random ID của điểm đến + điểm kết thúc int cityAID, cityBID; Dictionary <int, List <Route> > dictListRoute; do { cityAID = rnd.Next(1, 28); do { cityBID = rnd.Next(1, 28); } while (cityAID == cityBID); // Truyền vào hàm ChooseRoute ChooseRoute(cityAID, cityBID); // Lấy kết quả từ Session[SessionKey.ListPossibleRoute] dictListRoute = (Dictionary <int, List <Route> >)Session[SessionKey.ListPossibleRoute]; // Nếu có tuyến đường, chọn ngẫu nhiên một trong số đó lưu vào Session[SessionKey.ChosenRouteID] = dictRouteID; if (dictListRoute.Count > 0) { int tryChooseRouteCount = 0; Dictionary <int, List <FlightSchedule> > dictListFlightSchedule; do { Session[SessionKey.ChosenRouteID] = rnd.Next(0, dictListRoute.Count); // - Tạo Ticket mới với các thông số ngẫu nhiên Ticket ticket = GetDB().Tickets.Create(); // new Ticket() //{ ticket.ID = 0; ticket.TicketCode = DateTime.Now.Ticks.ToString(); ticket.Status = ""; ticket.ChildrenCount = rnd.Next(0, 3); ticket.AdultCount = rnd.Next(1, 5); ticket.SeniorCount = rnd.Next(0, 3); ticket.AirplaneClassID = 1; ticket.OrderDate = currentDate; ticket.TotalCost = 0; //}; if (ticket.TicketCode.Length > 16) { ticket.TicketCode = ticket.TicketCode.Substring(ticket.TicketCode.Length - 16); } // - Ngày khởi hành bắt đầu từ hôm nay DateTime departureDate = currentDate.AddDays(rnd.Next(0, (int)(DateTime.Now - currentDate).TotalDays + 1)); // - Gọi hàm ChooseFlightSchedule, truyền tham số vào ChooseFlightSchedule(ticket, departureDate); // - Lấy danh sách chuyến bay từ Session[SessionKey.ListPossibleFlightSchedule] dictListFlightSchedule = (Dictionary <int, List <FlightSchedule> >)Session[SessionKey.ListPossibleFlightSchedule]; if (dictListFlightSchedule.Count > 0) { // - Chọn ngẫu nhiên một trong các chuyến đó int totalSeat = ticket.ChildrenCount + ticket.AdultCount + ticket.SeniorCount; int seatClassID = rnd.Next(1, 4); List <List <FlightSchedule> > lstListFS; if (seatClassID == 1) { lstListFS = dictListFlightSchedule.Values.Where(lFS => lFS.TrueForAll(fs => fs.FirstSeatAvail >= totalSeat)).ToList(); } else if (seatClassID == 2) { lstListFS = dictListFlightSchedule.Values.Where(lFS => lFS.TrueForAll(fs => fs.BusinessSeatAvail >= totalSeat)).ToList(); } else { lstListFS = dictListFlightSchedule.Values.Where(lFS => lFS.TrueForAll(fs => fs.ClubSeatAvail >= totalSeat)).ToList(); } if (lstListFS.Count == 0) { tryChooseRouteCount++; if (tryChooseRouteCount >= 10) { skipThisCustomer = true; } continue; } int lstFSChoice = rnd.Next(0, lstListFS.Count); string status = (rnd.Next(0, 2) == 1) ? "Blocked" : "Reserved"; ticket.Status = status; // - Sử dụng code trong hàm PreviewTicket và AddTicket để thêm mới ticket, status ngẫu nhiên Block hoặc Reserved ticket.ProfileID = profile.ID; ticket.Profile = profile; ticket.FlightSchedules = lstListFS[lstFSChoice]; ticket.AirplaneClassID = seatClassID; AirplaneClass airplaneClass = lstAirplaneClass.Find(ac => ac.ID == seatClassID); ticket.AirplaneClass = airplaneClass; double priceRate = ticket.AirplaneClass.PriceRate; double basePrice = ticket.FlightSchedules.Sum(fs => fs.Route.BasePrice); ticket.TotalCost = Math.Round(basePrice * priceRate * totalSeat, 2); try { ARSMVCUtilities.GetDB().Tickets.Add(ticket); ARSMVCUtilities.GetDB().SaveChanges(); // - Random Cancelled vé bool cancelled = (rnd.Next(1, 11) == 1) ? true : false; if (cancelled) { ticket.Status = "Cancelled"; } // Gen ticket code ticket.TicketCode = "#" + ticket.ID.ToString(); ARSMVCUtilities.GetDB().Entry(ticket).State = System.Data.Entity.EntityState.Modified; ARSMVCUtilities.GetDB().SaveChanges(); Console.WriteLine("#{0:0000}: Add ticket success.", count++); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } Console.WriteLine("#{0:0000}: Add ticket failed. Error: {1}", count++, ex.Message); } db.Entry(ticket).State = System.Data.Entity.EntityState.Detached; } else { tryChooseRouteCount++; } if (tryChooseRouteCount >= 10) { skipThisCustomer = true; } } while (dictListFlightSchedule.Count == 0 && !skipThisCustomer); } else { tryChooseFromToCount++; } // Nếu không có quay lại bước random ID // Nếu quá số lần thử, bỏ qua người này if (tryChooseFromToCount >= 10) { skipThisCustomer = true; } } while (dictListRoute.Count == 0 && !skipThisCustomer); } } }
public ActionResult PreviewTicket(int lstFSChoice, int seatClassID) { Session[SessionKey.ListFlightScheduleChosen] = lstFSChoice; List <FlightSchedule> lstFS = ((Dictionary <int, List <FlightSchedule> >)Session[SessionKey.ListPossibleFlightSchedule])[lstFSChoice]; Ticket ticket = (Ticket)Session[SessionKey.Ticket]; ticket.Profile = new Profile(); if (Session[SessionKey.UserProfile] == null) { ticket.Profile.LastName = "Guest"; ticket.Profile.FirstName = ""; } else { ticket.Profile = (Profile)Session[SessionKey.UserProfile]; ticket.ProfileID = ticket.Profile.ID; ticket.Profile = ARSMVCUtilities.GetDB().Profiles.Find(ticket.ProfileID); } List <FlightSchedule> lstTicketFS = new List <FlightSchedule>(); foreach (FlightSchedule fs in lstFS) { FlightSchedule f = ARSMVCUtilities.GetDB().FlightSchedules.Find(fs.ID); lstTicketFS.Add(f); //lstTicketFS.Add(new FlightSchedule() //{ // ID = f.ID, // AirplaneCode = f.AirplaneCode, // Airplane = new Airplane() // { // AirplaneCode = f.AirplaneCode, // TypeID = f.Airplane.TypeID, // AirplaneType = new AirplaneType() // { // ID = f.Airplane.AirplaneType.ID, // Name = f.Airplane.AirplaneType.Name // } // }, // FirstSeatAvail = f.FirstSeatAvail, // BusinessSeatAvail = f.BusinessSeatAvail, // ClubSeatAvail = f.ClubSeatAvail, // DepartureDate = f.DepartureDate, // RouteID = f.RouteID, // Route = new Route() // { // CityA = new City() // { // ID = f.Route.CityA.ID, // Code = f.Route.CityA.Code, // Name = f.Route.CityA.Name // }, // CityB = new City() // { // ID = f.Route.CityB.ID, // Code = f.Route.CityB.Code, // Name = f.Route.CityB.Name // }, // BasePrice = f.Route.BasePrice, // SkyMiles = f.Route.SkyMiles // }, // IsActive = f.IsActive, //}); } ticket.FlightSchedules = lstTicketFS; ticket.AirplaneClassID = seatClassID; AirplaneClass ac = ARSMVCUtilities.GetDB().AirplaneClasses.Find(seatClassID); ticket.AirplaneClass = ac; //ticket.AirplaneClass = new AirplaneClass() //{ // ID = ac.ID, // Class = ac.Class, // PriceRate = ac.PriceRate //}; ticket.OrderDate = DateTime.Now; ticket.Status = "Preview"; ticket.TicketCode = "N/A"; int totalSeat = ticket.ChildrenCount + ticket.AdultCount + ticket.SeniorCount; double priceRate = ticket.AirplaneClass.PriceRate; double basePrice = lstFS.Sum(fs => fs.Route.BasePrice); ticket.TotalCost = Math.Round(basePrice * priceRate * totalSeat, 2); Session[SessionKey.Ticket] = ticket; return(View("TicketDetail", ticket)); }