コード例 #1
0
        public static object GetValeur(
            DataRow row,
            string strChampString,
            string strChampBlob,
            string strChampType,
            CContexteDonnee ctx)
        {
            Type t = CActivatorSurChaine.GetType((string)row[strChampType]);

            if (t == typeof(IDifferencesBlob))
            {
                CDonneeBinaireInRow    blob       = GetBlob(row, strChampBlob, ctx);
                MemoryStream           stream     = new MemoryStream(blob.Donnees);
                BinaryReader           reader     = new BinaryReader(stream);
                CSerializerReadBinaire serializer = new CSerializerReadBinaire(reader);
                I2iSerializable        objet      = null;
                CResultAErreur         result     = serializer.TraiteObject(ref objet);

                reader.Close();
                stream.Close();

                if (result)
                {
                    return(objet);
                }
                System.Console.WriteLine(I.T("Error while deserializing blob diffs|30000"));
                return(null);
            }
            else if (t == typeof(byte[]))
            {
                CDonneeBinaireInRow blob = GetBlob(row, strChampBlob, ctx);
                if (blob != null)
                {
                    return(blob.Donnees);
                }
                else
                {
                    return(null);
                }
            }
            else if (typeof(CObjetDonneeAIdNumerique).IsAssignableFrom(t))
            {
                int nId = Int32.Parse((string)row[strChampString]);
                CObjetDonneeAIdNumerique obj = (CObjetDonneeAIdNumerique)Activator.CreateInstance(t, new object[] { ctx });
                if (obj.ReadIfExists(nId))
                {
                    return(obj);
                }
                return(null);
            }
            else if (t != null && row[strChampString] != DBNull.Value)
            {
                return(CUtilTexte.FromUniversalString((string)row[strChampString], t));
            }
            return(null);
        }
コード例 #2
0
        public static void StockValeur(
            DataRow row,
            int idSession,
            string strChampType,
            string strChampBlob,
            string strChampString,
            object val)
        {
            if (val is IDifferencesBlob)
            {
                MemoryStream           stream     = new MemoryStream();
                BinaryWriter           writer     = new BinaryWriter(stream);
                CSerializerSaveBinaire serializer = new CSerializerSaveBinaire(writer);
                I2iSerializable        serTmp     = (I2iSerializable)val;
                CResultAErreur         result     = serializer.TraiteObject(ref serTmp);
                if (!result)
                {
                    throw new Exception(I.T("Can not serialize blob differences|192"));
                }
                row[strChampType] = typeof(IDifferencesBlob).ToString();
                CDonneeBinaireInRow donnee = new CDonneeBinaireInRow(idSession, row, strChampBlob);
                donnee.Donnees    = stream.GetBuffer();
                row[strChampBlob] = donnee;

                writer.Close();
                stream.Close();
            }
            else if (val is byte[])
            {
                CDonneeBinaireInRow donnee = new CDonneeBinaireInRow(idSession, row, strChampBlob);
                donnee.Donnees    = (byte[])val;
                row[strChampBlob] = donnee;
                row[strChampType] = typeof(byte[]).ToString();
            }
            else if (val != null && val.GetType() == typeof(CDonneeBinaireInRow))
            {
                row[strChampBlob] = val;
                row[strChampType] = typeof(byte[]).ToString();
            }
            else if (val is CObjetDonneeAIdNumerique)
            {
                row[strChampString] = ((CObjetDonneeAIdNumerique)val).Id;
                row[strChampString] = val.GetType().ToString();
            }
            else
            {
                row[strChampString] = CUtilTexte.ToUniversalString(val);
                if (val != null)
                {
                    row[strChampType] = val.GetType().ToString();
                }
                //else
                //    row[strChampType] = "";
            }
        }
コード例 #3
0
ファイル: CDifferencesTables.cs プロジェクト: ykebaili/Timos
            public CChampPourVersionLigneDeTable(DataRow row)
            {
                StringBuilder sb = new StringBuilder();

                m_strFieldKey = "";
                bool bDeleted = row.RowState == DataRowState.Deleted;

                if (bDeleted)
                {
                    row.RejectChanges();
                }

                foreach (DataColumn dc in row.Table.PrimaryKey)
                {
                    sb.Append(CUtilTexte.ToUniversalString(row[dc]).Replace("|", "\\|") + "|");
                }
                if (sb.Length == 0)
                {
                    //A VOIR SI CE CAS PEUT EXISTER ETANT DONNER
                    //QUE LE CDIFFERENCETABLE NE CONSIDERE PAS
                    //LES MAPPAGES SUR DES TABLES SANS CLE
                    foreach (DataColumn dc in row.Table.Columns)
                    {
                        sb.Append(CUtilTexte.ToUniversalString(row[dc]).Replace("|", "\\|") + "|");
                    }
                    if (sb.Length > 0)
                    {
                        m_strFieldKey = sb.ToString(0, sb.Length - 1);
                    }

                    m_strNomConvivial = I.TT(GetType(), "Row without identification|553");
                }
                else
                {
                    //m_strFieldKey = m_strFieldKey.Substring(0, m_strFieldKey.Length - 1);
                    if (sb.Length > 0)
                    {
                        m_strFieldKey = sb.ToString(0, sb.Length - 1);
                    }
                    //Ne pas traduire, Row key doit rester fixe (test en dur chez Audilog)
                    m_strNomConvivial = "Row key " + m_strFieldKey;
                }

                if (m_strFieldKey == "")
                {
                    throw new Exception(I.TT(GetType(), "CANNOT IDENTIFY ROW (empty key)|555"));
                }
                if (bDeleted)
                {
                    row.Delete();
                }
            }
コード例 #4
0
        void m_dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if (m_origine == EOrigineVersion.Cible)
            {
                //AJOUT
                if (m_strLigneOrigine == "@NULL")
                {
                    e.CellStyle.BackColor          = Color.GreenYellow;
                    e.CellStyle.SelectionBackColor = Color.GreenYellow;
                }
                //MODIFICATION ?
                else
                {
                    string[] dataOriginales = m_strLigneOrigine.Split('|');
                    bool     bModifie       = false;
                    string   strVal         = "";
                    if (e.ColumnIndex - 1 < dataOriginales.Length && e.ColumnIndex - 1 >= 0)
                    {
                        strVal = dataOriginales[e.ColumnIndex - 1];
                    }
                    if (strVal == "@NULL")
                    {
                        bModifie = (e.Value != DBNull.Value);
                    }
                    else
                    {
                        bModifie = CUtilTexte.ToUniversalString(e.Value) != strVal;
                    }

                    if (bModifie)
                    {
                        e.CellStyle.SelectionBackColor = Color.PaleGoldenrod;
                        e.CellStyle.BackColor          = Color.PaleGoldenrod;
                    }
                    else
                    {
                        e.CellStyle.SelectionBackColor = Color.Transparent;
                    }
                }
            }
            else
            {
                e.CellStyle.SelectionBackColor = Color.White;
            }

            e.CellStyle.SelectionForeColor = Color.Black;
        }
コード例 #5
0
ファイル: CPanelPlanification.cs プロジェクト: ykebaili/Timos
 //------------------------------------------------------------------
 private void m_menuLoadFile_Opening(object sender, CancelEventArgs e)
 {
     foreach (ToolStripItem item in new ArrayList(m_menuLoadFile.Items))
     {
         if (item != m_menuOpenConfig)
         {
             m_menuLoadFile.Items.Remove(item);
         }
     }
     string[] strRecents = CTimosAppRegistre.GetRecentsConfigPlanning();
     if (strRecents.Length > 0)
     {
         m_menuLoadFile.Items.Add(new ToolStripSeparator());
         foreach (string strRecent in strRecents)
         {
             ToolStripMenuItem itemOpenFile = new ToolStripMenuItem(CUtilTexte.TronqueLeMilieu(strRecent, 40));
             itemOpenFile.Tag = strRecent;
             m_menuLoadFile.Items.Add(itemOpenFile);
             itemOpenFile.Click += new EventHandler(itemOpenFile_Click);
         }
     }
 }
コード例 #6
0
ファイル: CDifferencesTables.cs プロジェクト: ykebaili/Timos
            public string GetStringSerialisation()
            {
                StringBuilder sb        = new StringBuilder();
                string        strResult = "";

                if (m_row != null)
                {
                    foreach (DataColumn c in m_row.Table.Columns)
                    {
                        if (c.ColumnName == "ID" || c.ColumnName == CTableParametrable.c_strColTimeStamp)
                        {
                            continue;
                        }
                        object val = null;
                        if (m_row.RowState == DataRowState.Deleted)
                        {
                            val = m_row[c, DataRowVersion.Original];
                        }
                        else
                        {
                            val = m_row[c];
                        }

                        sb.Append(CUtilTexte.ToUniversalString(val).Replace("|", "\\|") + "|");
                        //strResult += CUtilTexte.ToUniversalString(val).Replace("|", "\\|") + "|";
                    }
                }
                if (sb.Length > 0)
                {
                    strResult = sb.ToString(0, sb.Length - 1);
                }
                else
                {
                    strResult = I.T("No Value|556");
                }
                return(strResult);
            }
コード例 #7
0
 private string RemoveAccents(string strLibelle)
 {
     return(CUtilTexte.RemplaceAccentsParEquivalent(strLibelle));
 }
コード例 #8
0
        private void m_btnPaste_Click(object sender, EventArgs e)
        {
            if (!Clipboard.ContainsText())
            {
                MessageBox.Show("Nothing to paste");
            }
            m_bIsConverted  = false;
            m_btnOk.Enabled = false;
            string    strPaste = Clipboard.GetText();
            DataTable table    = null;

            try
            {
                table = CUtilTexte.GetDataTableFromExcelPaste(strPaste, m_chkUseFirstRowANames.Checked);
            }
            catch (Exception ex)
            {
                CResultAErreur result = CResultAErreur.True;
                result.EmpileErreur(new CErreurException(ex));
                CFormAlerte.Afficher(result.Erreur);
            }

            /*
             *
             * string[] strLignes = strPaste.Split('\n');
             * DataTable table = new DataTable();
             * table.BeginLoadData();
             * int nLigne = 0;
             * foreach (string strLaLigne in strLignes)
             * {
             *  string strLigne = strLaLigne;
             *  if ( strLigne.Length > 0 && strLigne[strLigne.Length-1] == '\r')
             *      strLigne = strLigne.Substring(0, strLigne.Length-1);
             *  if (strLigne.Length > 0 && strLigne[0] == '\r')
             *      strLigne = strLigne.Substring(1, strLigne.Length - 1);
             *  string[] strCols = strLigne.Split('\t');
             *  if (nLigne == 0 && m_chkUseFirstRowANames.Checked)
             *  {
             *      foreach (string strCol in strCols)
             *      {
             *          try
             *          {
             *              table.Columns.Add(strCol, typeof(string));
             *          }
             *          catch
             *          {
             *              try
             *              {
             *                  table.Columns.Add("Column " + table.Columns.Count + 1, typeof(string));
             *              }
             *              catch
             *              {
             *                  table.Columns.Add(Guid.NewGuid().ToString(), typeof(string));
             *              }
             *          }
             *      }
             *      nLigne++;
             *      continue;
             *  }
             *  nLigne++;
             *  while (table.Columns.Count < strCols.Length)
             *  {
             *      table.Columns.Add("Col " + table.Columns.Count + 1, typeof(string));
             *  }
             *  DataRow row = table.NewRow();
             *  int nCol = 0;
             *  foreach (string strVal in strCols)
             *  {
             *      row[nCol++] = strVal;
             *  }
             *  table.Rows.Add(row);
             * }
             * table.EndLoadData();*/
            if (table != null)
            {
                m_grid.DataSource = table;
                UpdatePanelMappage();
            }
        }
コード例 #9
0
ファイル: CPanelPlanification.cs プロジェクト: ykebaili/Timos
 //----------------------------------------------------------------
 private void m_menuSaveConfig_Opening(object sender, CancelEventArgs e)
 {
     m_menuSaveConfigDirect.Text = I.T("Save|20668") + " " + CUtilTexte.TronqueLeMilieu(m_strNomFichierEnCours, 40);
 }
コード例 #10
0
        public void Init(CControlListeOperationsSurCAVO.CValeurCAVOO valeurCAVOO)
        {
            m_origine         = valeurCAVOO.Origine;
            m_strLigneCible   = valeurCAVOO.CAVOO.ValChampCibleString;
            m_strLigneOrigine = valeurCAVOO.CAVOO.ValChampSourceString;
            byte[] byteOfTb = null;

            if (valeurCAVOO.CAVOO.ValChampCibleBlob.Donnees != null &&
                valeurCAVOO.CAVOO.ValChampCibleBlob.Donnees.Length > 0)
            {
                byteOfTb = valeurCAVOO.CAVOO.ValChampCibleBlob.Donnees;
            }
            else
            {
                byteOfTb = valeurCAVOO.CAVOO.ValChampSourceBlob.Donnees;
            }

            m_dt = CUtilADataTable.UnserializeDataTable(byteOfTb);

            string strLigneConcernee = m_origine == EOrigineVersion.Cible ? m_strLigneCible: m_strLigneOrigine;
            bool   bNull             = strLigneConcernee == "@NULL";

            if (bNull)
            {
                m_dgv.DataSource       = null;
                m_dgv.ContextMenuStrip = null;
                return;
            }
            string[] datas = null;
            if (!bNull)
            {
                datas = strLigneConcernee.Split('|');
            }

            DataRow dr = m_dt.NewRow();

            int nCpt = 0;

            foreach (DataColumn dc in m_dt.Columns)
            {
                if (nCpt >= datas.Length)
                {
                    break;
                }
                if (dc.ColumnName == "ID")
                {
                    dr[dc] = 0;
                    continue;
                }
                if (!bNull)
                {
                    if (datas[nCpt] == "@NULL")
                    {
                        dr[dc] = DBNull.Value;
                    }
                    else
                    {
                        if (dc.DataType == typeof(DateTime))
                        {
                            dr[dc] = (DateTime)CUtilTexte.FromUniversalString((string)datas[nCpt], typeof(DateTime));
                        }
                        else if (dc.DataType == typeof(int))
                        {
                            dr[dc] = (int)CUtilTexte.FromUniversalString((string)datas[nCpt], typeof(int));
                        }
                        else if (dc.DataType == typeof(bool))
                        {
                            dr[dc] = (bool)CUtilTexte.FromUniversalString((string)datas[nCpt], typeof(bool));
                        }
                        else if (dc.DataType == typeof(double))
                        {
                            dr[dc] = (double)CUtilTexte.FromUniversalString((string)datas[nCpt], typeof(double));
                        }
                        else
                        {
                            dr[dc] = datas[nCpt];
                        }
                    }
                }
                else
                {
                    dc.AllowDBNull = true;
                    dr[dc]         = DBNull.Value;
                }
                nCpt++;
            }
            m_dt.Rows.Add(dr);
            m_dgv.DataSource         = m_dt;
            m_dgv.Columns[0].Visible = false;


            m_dgv.CellFormatting += new DataGridViewCellFormattingEventHandler(m_dgv_CellFormatting);

            m_dgv.ColumnWidthChanged  += new DataGridViewColumnEventHandler(m_dgv_ColumnWidthChanged);
            m_dgv.AutoSizeColumnsMode  = DataGridViewAutoSizeColumnsMode.Fill;
            m_dgv.AllowUserToAddRows   = false;
            m_dgv.ColumnHeadersVisible = false;
            m_dgv.RowHeadersVisible    = true;
            m_dgv.RowHeadersWidth      = 10;
            m_dgv.ReadOnly             = true;

            ActualiserTextMenu();
            //m_dgv.ColumnHeadersVisible = false;

            //if (diffTable.CreationTable)
            //{
            //}
            //else if (diffTable.ChangementStructureTable)
            //{
            //}
            //else if (diffTable.ChangementClePrimaire)
            //{
            //}
            //else
            //{
            //    //Récupération de la ligne concernée

            //}
        }
コード例 #11
0
        //-----------------------------------------------------------
        public static CResultAErreur RunProcess(int nIdProcess, Dictionary <string, string> valeursParametres)
        {
            AssureTimerNettoyage();
            CResultAErreur result = GetSession();

            if (!result)
            {
                return(result);
            }
            CDonneeSessionProcess donneeSession = result.Data as CDonneeSessionProcess;

            result = CResultAErreur.True;
            try
            {
                CSessionClient session = donneeSession.SessionClient;
                using (CContexteDonnee contexte = new CContexteDonnee(session.IdSession, true, false))
                {
                    CProcessInDb processInDb = new CProcessInDb(contexte);
                    if (!processInDb.ReadIfExists(nIdProcess))
                    {
                        result.EmpileErreur(I.T("The process @1 doesn't exist|30008", nIdProcess.ToString()));
                        result.Data = (int)EErreurs.ProcessDoesntExists;
                        return(result);
                    }
                    CProcess process = processInDb.Process;
                    foreach (KeyValuePair <string, string> parametre in valeursParametres)
                    {
                        string strParametre = parametre.Key;
                        string strValeur    = parametre.Value;
                        bool   bTrouvee     = false;
                        foreach (IVariableDynamique variable in process.ListeVariables)
                        {
                            if (strParametre.ToUpper() == variable.Nom.ToUpper())
                            {
                                if (!variable.TypeDonnee.TypeDotNetNatif.IsValueType && variable.TypeDonnee.TypeDotNetNatif != typeof(string))
                                {
                                    result.EmpileErreur(I.T("Variable @1 cannot be set by TimosProcess. Only simple values can be used|30009", variable.Nom));
                                    result.Data = (int)EErreurs.InvalidVariableValueOnlySimpleValuesAreAccepted;
                                    return(result);
                                }
                                try
                                {
                                    object valeur = CUtilTexte.FromUniversalString(strValeur, variable.TypeDonnee.TypeDotNetNatif);
                                }
                                catch
                                {
                                }
                                process.SetValeurChamp(variable.IdVariable, strValeur);
                                bTrouvee = true;
                                break;
                            }
                        }
                        if (!bTrouvee)
                        {
                            result = ShowHelp(process);
                            result.EmpileErreur(I.T("Unknown variable @1|30010", strParametre));
                            result.Data = (int)EErreurs.UnknownVariable;
                            return(result);
                        }
                    }
                    result = CProcessEnExecutionInDb.StartProcess(process, new CInfoDeclencheurProcess(TypeEvenement.Manuel), session.IdSession, null, null);
                    if (!result)
                    {
                        result.Data = (int)EErreurs.ErrorWhileRunningProcess;
                        return(result);
                    }
                    if (result.Data != null)
                    {
                        try
                        {
                            result.Data = Convert.ToInt32(result.Data);
                        }
                        catch
                        {
                        }
                        return(result);
                    }
                    else
                    {
                        result.Data = 0;
                    }
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
                result.Data = (int)EErreurs.ErrorWhileRunningProcess;
                return(result);
            }
            finally
            {
                lock (typeof(CLanceurProcessCommandLine))
                {
                    donneeSession.EndUsing();
                }
            }
            return(result);
        }