public static CResultAErreurType <CCamusatQowisioData> StaticTraiteDataRowFromCsv(CContexteDonnee contexte, string strCsvRow) { CResultAErreurType <CCamusatQowisioData> result = new CResultAErreurType <CCamusatQowisioData>(); result.Result = true; CCamusatQowisioData newData = new CCamusatQowisioData(contexte); newData.CreateNewInCurrentContexte(); CResultAErreur resTmp = CResultAErreur.True; resTmp = newData.TraiteDataRowFromCsv(strCsvRow); if (!resTmp && newData.IsNew()) { newData.CancelCreate(); } if (!resTmp) { result.Erreur = resTmp.Erreur; } else { result.DataType = newData; } return(result); }
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); }
//---------------------------------------------------------------------------------- public CResultAErreur TraiteAlarmRowFromCsv(string strAlarmCsv) { CResultAErreur result = CResultAErreur.True; string[] listeDatas = strAlarmCsv.Split(';'); string strAlarmId = listeDatas[0]; if (strAlarmId == string.Empty) { result.EmpileErreur("No Alarm Id for CSV row : " + strAlarmCsv); return(result); } AlarmId = strAlarmId; string strHostId = listeDatas[1]; if (strHostId != "") { HostId = strHostId; // Recherche le Site associé au Host Id, si on ne trouve pas c'est pas grave on garde quand même l'alarme int?nIdSite = CCamusatQowisioData.TrouveAssociationIdHost_IdSite(strHostId, ContexteDonnee); PickupId = nIdSite; } int nNbColonnes = listeDatas.Length; for (int i = 2; i < nNbColonnes; i++) { string strDataSource = listeDatas[i]; KeyValuePair <string, Type> defChampAlarm; if (s_dicMappageColonneCsv_ChampAlarme.TryGetValue(i, out defChampAlarm)) { string strNomChamp = defChampAlarm.Key; Type typeDonnee = defChampAlarm.Value; if (typeDonnee == typeof(DateTime)) { try { DateTime date = CCamusatQowisioData.ParseDateFromString(strDataSource); Row[strNomChamp] = date; } catch { } } if (typeDonnee == typeof(int)) { try { int valeur = Int32.Parse(strDataSource); Row[strNomChamp] = valeur; continue; } catch { } } if (typeDonnee == typeof(double)) { try { double valeur = Convert.ToDouble(strDataSource.Replace('.', ',')); Row[strNomChamp] = valeur; continue; } catch { } } if (typeDonnee == typeof(string)) { Row[strNomChamp] = strDataSource; continue; } } else { return(result); } } try { TankId = CCamusatQowisioData.TrouveAssociationIdFuelProbe_IdEquipement(FuelProbId, ContexteDonnee); } catch (Exception e) { result.EmpileErreur(e.Message); } return(result); }