/// <summary> /// Returns all events after filtering them /// </summary> /// <param name="filterParameters"></param> /// <returns></returns> public List <Evenement> GetFilteredEvenements(EventFilterParameters filterParameters) { Debug.WriteLine(filterParameters.LotID); OpenConnection(); string SQLString = "SELECT * FROM evenement WHERE "; string dateStart = ""; string dateEnd = ""; // If the user wants the date filters, add them to the request if (filterParameters.UseDateFilter) { SQLString += " Eve_Date > STR_TO_DATE(@DateStart, '%Y-%m-%d %H:%i:%s') AND Eve_Date < STR_TO_DATE(@DateEnd, '%Y-%m-%d %H:%i:%s') AND"; dateStart = filterParameters.Start.ToString("yyyy - MM - dd HH: mm:ss"); dateEnd = filterParameters.End.ToString("yyyy - MM - dd HH: mm:ss"); } // If the users wants to use lot filters, add them to the request if (filterParameters.UseLotFilter) { SQLString += " Lot_Numero = @LotNumero AND"; } SQLString += " 1 = 1"; MySqlCommand cmd = Conn.CreateCommand(); cmd.CommandText = SQLString; if (filterParameters.UseDateFilter) { cmd.Parameters.AddWithValue("@DateStart", dateStart); cmd.Parameters.AddWithValue("@DateEnd", dateEnd); } if (filterParameters.UseLotFilter) { cmd.Parameters.AddWithValue("@LotNumero", filterParameters.LotID); } cmd.Prepare(); MySqlDataReader reader = cmd.ExecuteReader(); List <Evenement> evenements = new List <Evenement>(); Evenement evenement = new Evenement(); while (reader.Read()) { evenement.ID = int.Parse(reader["Lot_Numero"].ToString()); evenement.Message = reader["Eve_Message"].ToString(); evenement.DateTime = DateTime.Parse(reader["Eve_Date"].ToString()); evenement.LotID = int.Parse(reader["Lot_Numero"].ToString()); evenements.Add(evenement); } CloseConnection(); return(evenements); }
/// <summary> /// Updates the grid containing the events /// </summary> public void UpdateEventGrid() { // Before adding the events, clear the data grid view EventGrid.Rows.Clear(); // Setting up the filter parameters for the database query EventFilterParameters filterParameters = new EventFilterParameters(); filterParameters.UseDateFilter = useDateFilters.Checked; filterParameters.UseLotFilter = useLotFilters.Checked; if (filterParameters.UseDateFilter) { filterParameters.Start = timePickerDebut.Value; filterParameters.End = timePickerFin.Value; } if (filterParameters.UseLotFilter) { // If no lot is selected, continue without it if (comboLots.SelectedIndex == -1) { filterParameters.UseLotFilter = false; } else { filterParameters.LotID = ListeLots[comboLots.SelectedIndex].ID; } } // Use the filter parameters to only get the events we want to show List <Evenement> evenements = Program.manager.GetFilteredEvenements(filterParameters); for (int index = 0; index < evenements.Count; index++) { Lot lot = Program.manager.GetLotByID(evenements[index].LotID); EventGrid.Rows.Add(evenements[index].DateTime.ToString(), lot.Nom, evenements[index].Message ); } }