Пример #1
0
 public ElaboratiT(string fileElaborato, List <EntityT> entityElaborate, List <AttributeT> attributiElaborati, GlobalRelationStrut relazioniElaborate)
 {
     FileElaborato      = fileElaborato;
     EntityElaborate    = entityElaborate;
     AttributiElaborati = attributiElaborati;
     RelazioniElaborate = relazioniElaborate;
 }
Пример #2
0
        public static GlobalRelationStrut CreaGlobalRelationStrut(List <RelationT> relazioni)
        {
            // crea struttura
            GlobalRelationStrut GStrut = new GlobalRelationStrut();

            GStrut = CreaGlobalRelationStrutGrezze(relazioni);
            GStrut = CleanGlobalRelationStrut(GStrut);
            return(GStrut);
        }
Пример #3
0
        public static GlobalRelationStrut CreaGlobalRelationStrutGrezze(List <RelationT> relazioni)
        {
            GlobalRelationStrut Gstrut = new GlobalRelationStrut();

            if (relazioni == null)
            {
                return(Gstrut = null);
            }
            try
            {
                foreach (var rel in relazioni)
                {
                    //IEnumerable<RelationStrut> ExistRelationStrut = Gstrut.GlobalRelazioni.Where(x => x.ID == rel.IdentificativoRelazione);
                    bool trovato = false;
                    foreach (var Rstrut in Gstrut.GlobalRelazioni)
                    {
                        if (Rstrut.ID == rel.IdentificativoRelazione)
                        {
                            trovato = true;
                            Rstrut.Relazioni.Add(rel);
                            continue;
                        }
                    }
                    if (trovato == false)
                    {
                        RelationStrut RStrut = new RelationStrut();
                        RStrut.ID = rel.IdentificativoRelazione;
                        RStrut.Relazioni.Add(rel);
                        Gstrut.GlobalRelazioni.Add(RStrut);
                    }
                }
            }
            catch (Exception exp)
            {
                Logger.PrintLC("Error filtering relations list. Error:" + exp.Message, 3, ConfigFile.ERROR);
                return(Gstrut = null);
            }

            return(Gstrut);
        }
Пример #4
0
        public static GlobalRelationStrut CleanGlobalRelationStrut(GlobalRelationStrut GStrut)
        {
            try
            {
                List <RelationStrut> errorRelationStrut = new List <RelationStrut>();
                //verifica tutte le strutture
                foreach (RelationStrut RStrut in GStrut.GlobalRelazioni)
                {
                    if (RStrut.Relazioni.Count != 1)
                    {
                        //verifica singola struttura
                        string        tabellapadreverifica   = null;
                        string        tabellafigliaverifica  = null;
                        int?          cardinalitaverifica    = null;
                        int?          identificativaverifica = null;
                        bool?         tiporelazioneverifica  = null;
                        List <string> campopadreverifica     = new List <string>();
                        List <string> campofiglioverifica    = new List <string>();

                        int  contatore = 0;
                        bool errore    = false;


                        foreach (RelationT R in RStrut.Relazioni)
                        {
                            if (contatore == 0)
                            {
                                tabellapadreverifica   = R.TabellaPadre;
                                tabellafigliaverifica  = R.TabellaFiglia;
                                cardinalitaverifica    = R.Cardinalita;
                                identificativaverifica = R.Identificativa;
                                tiporelazioneverifica  = R.TipoRelazione;
                                campopadreverifica.Add(R.CampoPadre);
                                campofiglioverifica.Add(R.CampoFiglio);
                            }
                            else
                            {
                                if (tabellapadreverifica != R.TabellaPadre ||
                                    tabellafigliaverifica != R.TabellaFiglia ||
                                    cardinalitaverifica != R.Cardinalita ||
                                    identificativaverifica != R.Identificativa ||
                                    tiporelazioneverifica != R.TipoRelazione)
                                {
                                    errore = true;
                                    //PUNTO IN CUI ANDARE A SCRIVERE SULL'EXCEL ALLA RIGA APPROPRIATA
                                    R.History = "Relazione ignorata: ID " + RStrut.ID + " presenta valori diversi per uno o più dei seguenti campi: tabella padre, tabella figlia, cardinalità, identificativa e tipo relazione";
                                    Logger.PrintLC("Relazione ignorata: ID " + RStrut.ID + " presenta valori diversi per uno o più dei seguenti campi: tabella padre, tabella figlia, cardinalità, identificativa e tipo relazione", 3, ConfigFile.ERROR);
                                    continue;
                                }


                                if (campopadreverifica.Contains(R.CampoPadre) || campofiglioverifica.Contains(R.CampoFiglio))
                                {
                                    errore    = true;
                                    R.History = "Relazione ignorata: ID " + RStrut.ID + " campo padre e/o campo figlio duplicati all'interno della relazione";
                                    Logger.PrintLC("Relazione ignorata: ID " + RStrut.ID + " campo padre e/o campo figlio duplicati all'interno della relazione", 3, ConfigFile.ERROR);
                                    continue;
                                }
                                else
                                {
                                    campopadreverifica.Add(R.CampoPadre);
                                    campofiglioverifica.Add(R.CampoFiglio);
                                }
                            }
                            contatore += 1;
                        }
                        if (errore == true)
                        {
                            errorRelationStrut.Add(RStrut);
                        }
                    }
                }

                foreach (var errore in errorRelationStrut)
                {
                    RelationStrut mystrut = GStrut.GlobalRelazioni.Find(x => x == errore);
                    if (mystrut != null)
                    {
                        foreach (RelationT R in mystrut.Relazioni)
                        {
                            RelationT comodo = mystrut.Relazioni.Find(x => !string.IsNullOrEmpty(x.History));
                            if (comodo != null)
                            {
                                if (string.IsNullOrEmpty(R.History))
                                {
                                    R.History = comodo.History;
                                }
                            }
                        }
                    }
                }
            }
            catch
            {
                //
            }
            return(GStrut);
        }