コード例 #1
0
ファイル: CCamusatQowisioData.cs プロジェクト: ykebaili/Timos
        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);
        }
コード例 #2
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);
        }
コード例 #3
0
        //----------------------------------------------------------------------------------
        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);
        }