//------------------------------------------------------------------------------------------------------------------- public IDataRoomEntry GetFirstNotInSerie( string strIdTable, string strIdEntite, string strIdChamp, DateTime dateRecherche, ITestDataHotel test ) { if (test == null) { return(null); } List <CDataRoomEntry> lstData = GetData(strIdTable, strIdEntite, strIdChamp, dateRecherche.Date, dateRecherche); lstData.Sort((x, y) => x.Date.CompareTo(y.Date)); for (int n = lstData.Count - 1; n >= 0; n--) { if (!test.IsInFilter(strIdChamp, lstData[n])) { return(lstData[n]); } } CPlageDates plage = GetPlageDates(strIdTable); if (dateRecherche > plage.DateMin) { return(GetFirstNotInSerie(strIdTable, strIdEntite, strIdChamp, dateRecherche.Date.AddSeconds(-0.1), test)); } return(null); }
//------------------------------------------------------------------------------------------------------------------- /// <summary> /// Dit depuis combien de temps le champ demandé correspond /// au filtre à la date donnée /// </summary> /// <param name="strTableId"></param> /// <param name="strEntityId"></param> /// <param name="strFieldId"></param> /// <param name="dt"></param> /// <param name="filtre"></param> /// <returns></returns> public double GetDepuisCombienDeTempsEnS( string strTableId, string strEntityId, string strFieldId, DateTime dt, ITestDataHotel filtre) { IDataRoomEntry entry = GetKnownDataAt(strTableId, strEntityId, strFieldId, dt); if (entry == null) { return(0); } if (!filtre.IsInFilter(strFieldId, entry)) { return(0); } entry = GetFirstNotInSerie(strTableId, strEntityId, strFieldId, dt, filtre); if (entry != null) { return((dt - entry.Date).TotalSeconds); } return(0); }