Beispiel #1
0
 //-------------------------------------------------------------------
 public CSetupSmartImportEntiteParentItem(
     CSetupSmartImportItem parentItem,
     CDefinitionProprieteDynamique def,
     CValeursProprietes valeursParent,
     CMappageEntiteParente mappageParent,
     int nColorIndex)
     : base(parentItem, def, nColorIndex)
 {
     m_valeursParent = valeursParent;
     m_mappageParent = mappageParent;
     if (m_mappageParent == null && m_valeursParent != null)
     {
         m_mappageParent                                = new CMappageEntiteParente();
         m_mappageParent.Propriete                      = def;
         m_mappageParent.ConfigEntiteParente            = new CConfigMappagesSmartImport();
         m_mappageParent.ConfigEntiteParente.TypeEntite = def.TypeDonnee.TypeDotNetNatif;
         m_mappageParent.ConfigEntiteParente.KeyEntite  = m_valeursParent.DbKeyObjet;
     }
 }
Beispiel #2
0
        //-------------------------------------------------------------------------------
        public override CResultAErreur MajConfig(CConfigMappagesSmartImport config)
        {
            CResultAErreur result = CResultAErreur.True;

            if (Source == null || Source is CSourceSmartImportNoImport)
            {
                return(result);
            }

            CMappageEntiteParente mappage = new CMappageEntiteParente();

            mappage.Propriete                          = MappageEntiteParente.Propriete;
            mappage.UseAsKey                           = MappageEntiteParente.UseAsKey;
            mappage.Source                             = MappageEntiteParente.Source;
            mappage.ConfigEntiteParente                = new CConfigMappagesSmartImport();
            mappage.ConfigEntiteParente.IdMappage      = MappageEntiteParente.ConfigEntiteParente.IdMappage;
            mappage.ConfigEntiteParente.TypeEntite     = MappageEntiteParente.ConfigEntiteParente.TypeEntite;
            mappage.ConfigEntiteParente.KeyEntite      = MappageEntiteParente.ConfigEntiteParente.KeyEntite;
            mappage.ConfigEntiteParente.OptionCreation = MappageEntiteParente.ConfigEntiteParente.OptionCreation;

            List <CMappageEntiteParente> lstParents = new List <CMappageEntiteParente>(config.MappagesEntitesParentes);

            lstParents.Add(mappage);
            config.MappagesEntitesParentes = lstParents;
            if (Source is CSourceSmartImportFixedValue)//Dans ce cas, rien à faire de la suite
            {
                return(result);
            }

            foreach (CSetupSmartImportItem child in ChildItems)
            {
                result = child.MajConfig(mappage.ConfigEntiteParente);
                if (!result)
                {
                    return(result);
                }
            }

            return(result);
        }
        //-------------------------------------------------------------------------------
        private void CreateChilds(CSetupSmartImportItem si, CValeursProprietes valeurs, CConfigMappagesSmartImport configMappage)
        {
            //Champs simples
            HashSet <CDefinitionProprieteDynamique> set = new HashSet <CDefinitionProprieteDynamique>();

            if (valeurs != null)
            {
                foreach (CDefinitionProprieteDynamique prop in valeurs.GetDefinitionsSimples())
                {
                    if (prop != null)
                    {
                        set.Add(prop);
                    }
                }
            }
            if (configMappage != null)
            {
                foreach (CMappageChampSimple mappage in configMappage.MappagesChampsSimples)
                {
                    if (mappage.Propriete != null)
                    {
                        set.Add(mappage.Propriete);
                    }
                }
            }
            List <CDefinitionProprieteDynamique> lst = new List <CDefinitionProprieteDynamique>(set.ToArray());

            lst.Sort((x, y) => x.Nom.CompareTo(y.Nom));
            int nIndex = si.Index;

            foreach (CDefinitionProprieteDynamique def in lst)
            {
                CMappageChampSimple mappageSimple = configMappage != null?
                                                    configMappage.GetMappageSimpleFor(def) :
                                                        null;

                bool bCreate = true;
                if (HideNullSources)
                {
                    bCreate = mappageSimple != null && mappageSimple.Source != null;
                }
                if (bCreate)
                {
                    CSetupSmartImportChampSimpleItem item = new CSetupSmartImportChampSimpleItem(
                        si,
                        def,
                        valeurs != null ? valeurs.GetValeurSimple(def) : null,
                        mappageSimple,
                        si.ColorIndex);
                    InsertItem(++nIndex, item, false);
                }
            }


            //Champs parents
            int nColorIndex = si.ColorIndex;

            set.Clear();
            if (valeurs != null)
            {
                foreach (CDefinitionProprieteDynamique def in valeurs.GetDefinitionsParentes())
                {
                    if (def != null)
                    {
                        set.Add(def);
                    }
                }
            }
            if (configMappage != null)
            {
                foreach (CMappageEntiteParente map in configMappage.MappagesEntitesParentes)
                {
                    if (map.Propriete != null)
                    {
                        set.Add(map.Propriete);
                    }
                }
            }
            lst = new List <CDefinitionProprieteDynamique>(set.ToArray());
            lst.Sort((x, y) => x.Nom.CompareTo(y.Nom));
            foreach (CDefinitionProprieteDynamique def in lst)
            {
                CMappageEntiteParente mappageParent = configMappage != null?configMappage.GetMappageParentFor(def) : null;

                bool bCreate = true;
                if (HideNullSources)
                {
                    bCreate = mappageParent != null && mappageParent.Source != null;
                }
                if (bCreate)
                {
                    nColorIndex++;
                    if (CSetupSmartImportItem.GetCouleur(nColorIndex) == si.BackColor)
                    {
                        nColorIndex++;
                    }

                    CSetupSmartImportEntiteParentItem item = new CSetupSmartImportEntiteParentItem(
                        si,
                        def,
                        valeurs != null ? valeurs.GetValeurParente(def) : null,
                        mappageParent,
                        nColorIndex);
                    InsertItem(++nIndex, item, false);
                }
            }

            set.Clear();
            if (valeurs != null)
            {
                foreach (CDefinitionProprieteDynamique def in valeurs.GetDefinitionsFilles())
                {
                    if (def != null)
                    {
                        set.Add(def);
                    }
                }
            }
            if (configMappage != null)
            {
                foreach (CMappageEntitesFilles map in configMappage.MappagesEntitesFilles)
                {
                    if (map.Propriete != null)
                    {
                        set.Add(map.Propriete);
                    }
                }
            }
            lst = new List <CDefinitionProprieteDynamique>(set.ToArray());
            lst.Sort((x, y) => x.Nom.CompareTo(y.Nom));
            foreach (CDefinitionProprieteDynamique def in lst)
            {
                CMappageEntitesFilles mappageFilles = configMappage != null?configMappage.GetMappageFilleFor(def) : null;

                bool bCreate = true;
                if (HideNullSources)
                {
                    bCreate = mappageFilles != null && mappageFilles.MappagesEntitesFilles.Count() > 0;
                }
                if (bCreate)
                {
                    CSetupSmartImportEntiteFilleItem item = new CSetupSmartImportEntiteFilleItem(
                        si,
                        def,
                        valeurs,
                        mappageFilles,
                        si.ColorIndex
                        );
                    InsertItem(++nIndex, item, false);
                }
            }
        }