private async void btnSubmit_Click(object sender, System.EventArgs e) { // Lay gia tri tren form gan vao flightSchedule.AirplaneCode = ((Airplane)cboAirplane.SelectedItem).AirplaneCode; flightSchedule.RouteID = ((Route)cboRoute.SelectedItem).ID; flightSchedule.DepartureDate = dateTimePicker1.Value; flightSchedule.IsActive = rbtnActive.Checked; // Tao mot API FlightScheduleWrapper flightScheduleWrapper = new FlightScheduleWrapper(); // Tao bien luu ket qua tra ve bool isSuccess; // Kiem tra xem dang o che do nao if (mode == FormMode.CREATE) { // Neu dang o che do them moi (CREATE) // POST account len server isSuccess = await flightScheduleWrapper.Post(flightSchedule); } else { // Neu dang o che do chinh sua (EDIT) // PUT account len server isSuccess = await flightScheduleWrapper.Put(flightSchedule.ID.ToString(), flightSchedule); } // Kiem tra ket qua tra ve if (isSuccess) { // Neu thanh cong MessageBox.Show("Operation completed successfully!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); // Tat form CE this.Close(); } else { // Neu that bai, hien thong bao loi MessageBox.Show("An error has occurred:\n" + flightScheduleWrapper.GetErrorMessage(), "Failed", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Only use for generate sample data of table FlightSchedule /// This function will generate flight schedule for all route in database, /// each route will have <code>maxFlightSchedulePerRoute</code> flight schedules, /// each flight schedule of route will apart one day, starting from today. /// </summary> private async void AutoGenerateFlightSchedule() { DateTime startTime = DateTime.Now; Console.WriteLine("Start at {0}", startTime); FlightScheduleWrapper flightScheduleWrapper = new FlightScheduleWrapper(); AirplaneWrapper airplaneWrapper = new AirplaneWrapper(); AirplaneTypeWrapper airplaneTypeWrapper = new AirplaneTypeWrapper(); AirplaneInfoWrapper airplaneInfoWrapper = new AirplaneInfoWrapper(); RouteWrapper routeWrapper = new RouteWrapper(); List <Airplane> lstAirplane = await airplaneWrapper.List(); List <AirplaneType> lstAirplaneType = await airplaneTypeWrapper.List(); List <AirplaneInfo> lstAirplaneInfo = await airplaneInfoWrapper.List(); List <Route> lstRoute = await routeWrapper.List(); int flightScheduleOfCurrentRoute = 0; int maxFlightSchedulePerRoute = 15; DateTime startingDate = DateTime.Now; int currentAirplaneIndex = 0; int count = 0; for (int routeIndex = 0, maxRouteIndex = lstRoute.Count - 1; routeIndex <= maxRouteIndex; routeIndex++) { Route currentRoute = lstRoute[routeIndex]; do { Airplane currentAirplane = lstAirplane[currentAirplaneIndex++]; AirplaneType currentAirplaneType = lstAirplaneType.Find(at => at.ID == currentAirplane.TypeID); List <AirplaneInfo> currentAirplaneInfo = lstAirplaneInfo.Where(ai => ai.AirplaneTypeID == currentAirplaneType.ID).ToList(); DateTime departureDate = startingDate.AddDays(flightScheduleOfCurrentRoute); FlightSchedule flightSchedule = new FlightSchedule() { AirplaneCode = currentAirplane.AirplaneCode, RouteID = currentRoute.ID, DepartureDate = departureDate, FirstSeatAvail = currentAirplaneInfo.Find(ai => ai.ClassID == 1).SeatCount, BusinessSeatAvail = currentAirplaneInfo.Find(ai => ai.ClassID == 2).SeatCount, ClubSeatAvail = currentAirplaneInfo.Find(ai => ai.ClassID == 3).SeatCount, IsActive = true }; if (await flightScheduleWrapper.Post(flightSchedule)) { Console.WriteLine("Add flight schedule #{0} success!", ++count); } else { Console.WriteLine("Add flight schedule #{0} failed!", ++count); } if (currentAirplaneIndex >= lstAirplane.Count) { currentAirplaneIndex = 0; } } while (++flightScheduleOfCurrentRoute < maxFlightSchedulePerRoute); flightScheduleOfCurrentRoute = 0; } DateTime endTime = DateTime.Now; Console.WriteLine("End at {0}", startTime); Console.WriteLine("Total time: {0}", (endTime - startTime).TotalSeconds); }