コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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
                                   );
            }
        }