コード例 #1
0
        public static CCamusatQowisioData GetDataAt(
            CSite site,
            DateTime?dtLimite,
            bool bOnlyWithExternalProbeConnected)
        {
            if (site == null)
            {
                return(null);
            }

            CFiltreData filtreDatas = new CFiltreData("(" +
                                                      CCamusatQowisioData.c_champFuSite_Id + " = @1 OR " +
                                                      CCamusatQowisioData.c_champFuPickup_Id + " = @1)",
                                                      site.Id);

            if (dtLimite != null)
            {
                filtreDatas.Filtre += " and " +
                                      CCamusatQowisioData.c_champQwDateTime + "< @2";
                filtreDatas.Parametres.Add(dtLimite.Value.AddSeconds(10));
            }
            if (bOnlyWithExternalProbeConnected)
            {
                filtreDatas.Filtre += " and " + CCamusatQowisioData.c_champQwExFP_Id + "<>@3";
                filtreDatas.Parametres.Add("");
            }

            C2iRequeteAvancee rq = new C2iRequeteAvancee();

            rq.TableInterrogee  = CCamusatQowisioData.c_nomTable;
            rq.FiltreAAppliquer = filtreDatas;
            rq.ListeChamps.Add(new C2iChampDeRequete(
                                   "MAXDATE", new CSourceDeChampDeRequete(CCamusatQowisioData.c_champQwDateTime),
                                   typeof(DateTime), OperationsAgregation.Max, false));
            CResultAErreur result = rq.ExecuteRequete(site.ContexteDonnee.IdSession);

            if (result)
            {
                DataTable table = result.Data as DataTable;
                if (table != null && table.Rows.Count == 1)
                {
                    if (table.Rows[0][0] is DateTime)
                    {
                        DateTime    dtMax  = (DateTime)table.Rows[0][0];
                        CFiltreData filtre = new CFiltreData("(" +
                                                             CCamusatQowisioData.c_champFuSite_Id + " = @1 OR " +
                                                             CCamusatQowisioData.c_champFuPickup_Id + " = @1) and " +
                                                             CCamusatQowisioData.c_champQwDateTime + "=@2",
                                                             site.Id,
                                                             dtMax);
                        CCamusatQowisioData data = new CCamusatQowisioData(site.ContexteDonnee);
                        if (data.ReadIfExists(filtre))
                        {
                            return(data);
                        }
                    }
                }
            }

            /*CListeObjetDonneeGenerique<CCamusatQowisioData> listeDatas =
             *   new CListeObjetDonneeGenerique<CCamusatQowisioData>(site.ContexteDonnee, filtreDatas);
             * listeDatas.Tri = CCamusatQowisioData.c_champQwDateTime + " desc";
             * listeDatas.StartAt = 0;
             * listeDatas.EndAt = 0;
             *
             * foreach (object obj in listeDatas)
             * {
             *   return obj as CCamusatQowisioData;
             * }*/

            return(null);
        }