public List<VehicleInformation> GetAllVehicle()
        {
            List<VehicleInformation> allVehicles = new List<VehicleInformation>();
            try
            {
                SqlConnectionObj.Open();
                string query = string.Format("select * from VehicleInformation");
                SqlCommandObj.CommandText = query;
                SqlDataReader reader = SqlCommandObj.ExecuteReader();
                while (reader.Read())
                {
                    VehicleInformation aVehicleInformation = new VehicleInformation();
                    aVehicleInformation.RegNo = reader[0].ToString();
                    aVehicleInformation.EngineNo = reader[1].ToString();
                    allVehicles.Add(aVehicleInformation);
                }
            }
            catch (Exception exceptionObj)
            {

                throw new Exception("Vehicle inforamtion number can not be loaded.", exceptionObj);
            }
            finally
            {
                if (SqlConnectionObj != null && SqlConnectionObj.State == ConnectionState.Open)
                {
                    SqlConnectionObj.Close();
                }
            }
            return allVehicles;
        }
        public List<SchedulesOfAVehicle> GetSchedulesOfASingleVehicle(VehicleInformation vehicle)
        {
            List<SchedulesOfAVehicle> schedulesOfAVehicle = new List<SchedulesOfAVehicle>();

            try
            {
                SqlConnectionObj.Open();
                string query = string.Format("SELECT Date,Shift FROM ScheduleVehicle WHERE VehicleRegNo='{0}'", vehicle.RegNo);
                SqlCommandObj.CommandText = query;
                SqlDataReader reader = SqlCommandObj.ExecuteReader();
                if(reader.HasRows)
                {
                    while (reader.Read())
                    {
                        SchedulesOfAVehicle singleScheduleOfAVehicle = new SchedulesOfAVehicle();
                        singleScheduleOfAVehicle.DateTime = (DateTime)reader[0];
                        singleScheduleOfAVehicle.Shift = reader[1].ToString();
                        schedulesOfAVehicle.Add(singleScheduleOfAVehicle);
                    }
                    return schedulesOfAVehicle;
                }
            }
            catch (Exception exceptionObj)
            {
                throw new Exception("Exception Occured in GetScheduleOfASingleVehicle method!!!",exceptionObj);
            }
            finally
            {
                if (SqlConnectionObj != null && SqlConnectionObj.State == ConnectionState.Open)
                {
                    SqlConnectionObj.Close();
                }
            }
            return null;
        }
 public ScheduleVehicle IsScheduleBooked(VehicleInformation vehicle, DateTime selectedDate, string shift)
 {
     try
     {
         SqlConnectionObj.Open();
         string query = string.Format("SELECT * FROM ScheduleVehicle WHERE VehicleRegNo='{0}' AND Date='{1}' AND Shift='{2}'", vehicle.RegNo, selectedDate, shift);
         SqlCommandObj.CommandText = query;
         SqlDataReader reader = SqlCommandObj.ExecuteReader();
             while (reader.Read())
             {
                 ScheduleVehicle vehicleSchedule = new ScheduleVehicle();
                 vehicleSchedule.Vehicle.RegNo = reader[0].ToString();
                 vehicleSchedule.SelectedDate = (DateTime)reader[1];
                 vehicleSchedule.SelectShift = reader[2].ToString();
                 vehicleSchedule.BookedBy = reader[3].ToString();
                 vehicleSchedule.Address = reader[4].ToString();
                 return vehicleSchedule;
             }
     }
     catch (Exception exceptionObj)
     {
         throw new Exception("Exception occured! In Schedule Booking.",exceptionObj);
     }
     finally
     {
         if (SqlConnectionObj != null && SqlConnectionObj.State == ConnectionState.Open)
         {
             SqlConnectionObj.Close();
         }
     }
     return null;
 }
 public bool IsScheduleBooked(VehicleInformation vehicle, DateTime selectedDate, string shift)
 {
     ScheduleVehicle vehicleSchedule = new ScheduleVehicle();
     vehicleSchedule = scheduleVehicleGateway.IsScheduleBooked(vehicle, selectedDate, shift);
     if(vehicleSchedule!=null)
     {
         string msg = string.Format("This schedule is already booked by : {0}", vehicleSchedule.BookedBy);
         return true;
     }
     return false;
 }
 public List<SchedulesOfAVehicle>GetSchedulesOfASingleVehicle(VehicleInformation vehicle)
 {
     try
     {
         if(_vehicleScheduleGateway.GetSchedulesOfASingleVehicle(vehicle)!=null)
         {
             return _vehicleScheduleGateway.GetSchedulesOfASingleVehicle(vehicle);
         }
     }
     catch (Exception exceptionObj)
     {
         throw new Exception("Exception Occured!!",exceptionObj);
     }
     return null;
 }
 public bool GetVehicleSchedule(VehicleInformation vehicle, DateTime selectedDate,string shift, string bookedBy, string address)
 {
     try
     {
         if(!IsScheduleBooked(vehicle,selectedDate,shift))
         {
             scheduleVehicleGateway.SaveSchedule(vehicle, selectedDate, shift, bookedBy, address);
             return true;
         }
     }
     catch (Exception exceptionObj)
     {
         throw new Exception("Exception occured! Schedule can not be saved.",exceptionObj);
     }
     return false;
 }
 private void singleVehicleScheduleShowButton_Click(object sender, EventArgs e)
 {
     VehicleScheduleManager vehicleScheduleManager = new VehicleScheduleManager();
     VehicleInformation selectedVehicle = new VehicleInformation();
     selectedVehicle = (VehicleInformation) scheduleOfAVehicleComboBox.SelectedItem;
     try
     {
         if(vehicleScheduleManager.GetSchedulesOfASingleVehicle(selectedVehicle)!=null)
         {
             schedulesOfAVehicleGridView.DataSource =
                 vehicleScheduleManager.GetSchedulesOfASingleVehicle(selectedVehicle);
             schedulesOfAVehicleGridView.Show();
         }
         else
         {
             MessageBox.Show("No Schedule is Booked :)");
         }
     }
     catch (Exception exceptionObj)
     {
         MessageBox.Show("Exception occured in UI! "+exceptionObj.Message);
     }
 }
        public bool SaveSchedule(VehicleInformation vehicle, DateTime selectedDate, string shift, string bookedBy, string address)
        {
            try
            {
                SqlConnectionObj.Open();
                string query = string.Format("INSERT INTO ScheduleVehicle VALUES('{0}',{1},'{2}','{3}','{4}')", vehicle.RegNo, selectedDate, shift, bookedBy, address);
                SqlCommandObj.CommandText = query;
                SqlCommandObj.ExecuteNonQuery();
                return true;
            }
            catch (Exception exceptionObj)
            {

                throw new Exception("Schedule can not be saved!",exceptionObj);
            }
            finally
            {
                if (SqlConnectionObj != null && SqlConnectionObj.State == ConnectionState.Open)
                {
                    SqlConnectionObj.Close();
                }
            }
            return false;
        }