Пример #1
0
        private CResultAErreur PrepareImport(
            ref CConfigMappagesSmartImport config,
            ref DataTable tableSource)
        {
            CResultAErreur result = CResultAErreur.True;
            CResultAErreurType <CConfigMappagesSmartImport> resConfig = m_ctrlSetup.GetConfigFinale();

            if (!resConfig)
            {
                result.EmpileErreur(resConfig.Erreur);
                return(result);
            }
            config = resConfig.DataType;
            if (m_sessionImport.TableSource != null)
            {
                tableSource = m_sessionImport.TableSource;
            }
            else if (m_parametreLectureFichier != null)
            {
                result = m_parametreLectureFichier.LectureFichier(m_strNomFichierExemple);
                if (!result)
                {
                    return(result);
                }
                tableSource = result.Data as DataTable;
            }
            return(result);
        }
Пример #2
0
        //------------------------------------
        public CResultAErreur Importer(string strFichier, CContexteDonnee contexteDestination)
        {
            CResultAErreur result = m_parametre.LectureFichier(strFichier);

            m_nNbUpdated = 0;
            m_nNbCreated = 0;

            if (!result)
            {
                return(result);
            }

            if (m_bChargerTouteLaCible)
            {
                CListeObjetsDonnees lst = new CListeObjetsDonnees(contexteDestination, m_typeCible);
                lst.AssureLectureFaite();
            }

            //Vérifie que l'utilisateur a le droit de faire un import
            CSessionClient session   = CSessionClient.GetSessionForIdSession(contexteDestination.IdSession);
            bool           bALeDroit = false;

            if (session != null)
            {
                IInfoUtilisateur info = session.GetInfoUtilisateur();
                if (info != null)
                {
                    bALeDroit = info.GetDonneeDroit(CDroitDeBaseSC2I.c_droitImport) != null;
                }
            }

            if (!bALeDroit)
            {
                result.EmpileErreur(I.T("Your are not allowed to import data|20048"));
                return(result);
            }

            DataTable table = result.Data as DataTable;

            if (table == null)
            {
                result.EmpileErreur(I.T("Import error, can not read source data|20043"));
                return(result);
            }
            int    nParametre = 1;
            string strFiltre  = "";

            foreach (CMappageChampImport mappage in Mappages)
            {
                if (mappage.IsCle)
                {
                    result = mappage.GetFiltreCle(m_typeCible, nParametre);
                    if (!result)
                    {
                        return(result);
                    }
                    nParametre++;
                    strFiltre += result.Data.ToString() + " and ";
                }
            }
            CFiltreData filtreCle = null;

            if (strFiltre.Length > 0)
            {
                filtreCle = new CFiltreData(strFiltre.Substring(0, strFiltre.Length - 5));
            }
            foreach (DataRow row in table.Rows)
            {
                result = ImporteRow(row, filtreCle, contexteDestination);
                if (!result)
                {
                    return(result);
                }
            }
            return(result);
        }