public string AggiungiVentola(PosizioneVentola posizioneVentola, Ventola ventola)
        {
            if (_mappaPosizioneVentole == null)
                return "impossibile inserire la ventola, configurare prima il case";
            if (posizioneVentola.OccupatoDiSerie == true)
                return "Impossibile modificare questa ventola, รจ di fabbrica nel case";


            Dictionary<string, object> vincoli = _controlloreVincoli.Vincoli;

            if (ventola.Diametro + "_False" == (string)vincoli[posizioneVentola.Posizione.ToString()])
            {
                _mappaPosizioneVentole[posizioneVentola] = ventola;
                _controlloreVincoli.Vincoli[posizioneVentola.Posizione.ToString()] = ventola.Diametro + "_True";
            }
            else
                return "posizione occupata";

            ValutaDissipazione();

            return "";

        }
        public ComponentiProva()
        {
            _componenti = new List<Componente>();

            Dictionary<PosizioneVentola, Ventola> ventole = new Dictionary<PosizioneVentola,Ventola>();
            ventole.Add(new PosizioneVentola(Diametro.d140, Posizione.Frontale1, true), new Ventola(Diametro.d90, false, 1000, 5, 1.2F, "VentolaFrontale", "Zalman", 10, "", 0, new Dictionary<Connettore, int>()));
            ventole.Add(new PosizioneVentola(Diametro.d140, Posizione.Superiore1, true), new Ventola(Diametro.d90, false, 1000, 5, 1.2F, "VentolaSuperiore", "Zalman", 10, "", 0, new Dictionary<Connettore, int>()));
            ventole.Add(new PosizioneVentola(Diametro.d120, Posizione.Posteriore, true), new Ventola(Diametro.d90, false, 1000, 5, 1.2F, "VentolaPosteriore", "Zalman", 10, "", 0, new Dictionary<Connettore, int>()));
            ventole.Add(new PosizioneVentola(Diametro.d90, Posizione.Destra, true), new Ventola(Diametro.d90, false, 1000, 5, 1.2F, "VentolaDestra", "Zalman", 10, "", 0, new Dictionary<Connettore, int>()));
            ventole.Add(new PosizioneVentola(Diametro.d90, Posizione.Sinistra, true), new Ventola(Diametro.d90, false, 1000, 5, 1.2F, "VentolaSinistra", "Zalman", 10, "", 0, new Dictionary<Connettore, int>()));
            ventole.Add(new PosizioneVentola(Diametro.d140, Posizione.Superiore2, false), null);
            ventole.Add(new PosizioneVentola(Diametro.d120, Posizione.Inferiore, false), null);

            Case c = new Case(FormatoCase.mid_Tower, 498, 525, 260, 1, 5, 3, FormatoAlimentatore.ATX, ventole, 260, 240, 3, 2, "Zalman Z11 Plus", "Zalman", 64, "", 7, new Dictionary<Connettore, int>());
            _componenti.Add(c);

            Dictionary<PosizioneVentola, Ventola> ventole1 = new Dictionary<PosizioneVentola, Ventola>();
            ventole1.Add(new PosizioneVentola(Diametro.d120, Posizione.Superiore1, true), new Ventola(Diametro.d90, false, 1000, 5, 1.2F, "VentolaSuperiore", "Zalman", 0, "", 0, null));
            ventole1.Add(new PosizioneVentola(Diametro.d120, Posizione.Superiore2, true), new Ventola(Diametro.d90, false, 1000, 5, 1.2F, "VentolaSuperiore", "Zalman", 0, "", 0, null));
            ventole1.Add(new PosizioneVentola(Diametro.d140, Posizione.Posteriore, false), null);

            Case c1 = new Case(FormatoCase.mini_ITX, 60, 300, 130, 3, 5, 1, FormatoAlimentatore.SFX, ventole, 190, 200, 4, 4, "PC-O5S", "Lian Li", 300, "", 7, new Dictionary<Connettore, int>());
            _componenti.Add(c1);

            Dictionary<Connettore, int> connettori = new Dictionary<Connettore,int>();
            connettori.Add(Connettore.ATX20piu4pin, 1);
            connettori.Add(Connettore.EPS4piu4pin, 1);

            SchedaMadre mobo = new SchedaMadre(FormatoSchedaMadre.ATX, FormatoSocketCPU.LGA_1150, Chipset.z87, 3, 3, 10, 4, TecnologiaRAM.DDR3, "Z87 extreme6", "Asrock", 250, "", 2.5F, connettori);
            _componenti.Add(mobo);
            SchedaMadre mobo1 = new SchedaMadre(FormatoSchedaMadre.mini_ITX, FormatoSocketCPU.LGA_1150, Chipset.z87, 1, 1, 5, 2, TecnologiaRAM.DDR3, "Z87I GAMING AC", "MSI", 116, "", 1, connettori);
            _componenti.Add(mobo1);

            Processore cpu = new Processore(3.4F, 4, FormatoSocketCPU.LGA_1150, 84, 32, 6, TecnologiaCPU.Haswell, "i5-4670K", "Intel", 230, "", 0.340F, new Dictionary<Connettore, int>());
            _componenti.Add(cpu);
            Processore cpu1 = new Processore(3.4F, 4, FormatoSocketCPU.LGA_1150, 84, 32, 8, TecnologiaCPU.Haswell, "i7-4770", "Intel", 300, "", 0.340F, new Dictionary<Connettore, int>());
            _componenti.Add(cpu1);

            Dictionary<Connettore, int> connettoriSec = new Dictionary<Connettore, int>();
            connettoriSec.Add(Connettore.SATA15pin, 1);
            MemoriaSecondaria hdd = new MemoriaSecondaria(TipoMemoriaSecondaria.HDD, 7200, 1000, 6, FormatoPeriferica.PerifericaDa35,  "Caviar Blue", "Western Digital", 50, "", 0.5F, connettoriSec);
            _componenti.Add(hdd);
            MemoriaSecondaria ssd = new MemoriaSecondaria(TipoMemoriaSecondaria.SSD, 528, 120, 1, FormatoPeriferica.PerifericaDa25, "850 EVO", "Samsung", 70, "", 0.118F, connettoriSec);
            _componenti.Add(ssd);

            MemoriaRAM ram = new MemoriaRAM(2, TecnologiaRAM.DDR3, 8, 10, 1600, "CL9", "Vengeance 8gb", "Corsair", 65, "", 0.1F, new Dictionary<Connettore, int>());
            _componenti.Add(ram);
            MemoriaRAM ram1 = new MemoriaRAM(2, TecnologiaRAM.DDR3, 8, 10, 1600, "CL9", "Ares 8gb", "G-SKILL", 63, "", 0.1F, new Dictionary<Connettore, int>());
            _componenti.Add(ram1);

            LettoreSupportoOttico dvd = new LettoreSupportoOttico(TipoLettoreSupportoOttico.lettore_DVD, 16, 20, FormatoPeriferica.PerifericaDa525, "GH15L 16x", "LG", 20, "", 1, connettoriSec);
            _componenti.Add(dvd);

            Dictionary<Connettore, int> connettoriSV = new Dictionary<Connettore, int>();
            connettoriSV.Add(Connettore.PCIE6piu2pin, 1);
            SchedaVideo sv = new SchedaVideo("Asus", 272, 137, 43, 1, 2, 2, 200, true, "GTX 660 Ti", "Nvidia", 180, "", 1.2F, connettoriSV);
            _componenti.Add(sv);
            SchedaVideo sv1 = new SchedaVideo("Gigabyte", 181, 136, 42, 1, 2, 2, 400, true, "GTX 960 IXOC", "Nvidia", 230, "", 0.8F, connettoriSV);
            _componenti.Add(sv1);


            Dictionary<Connettore, int> connettoriALI = new Dictionary<Connettore, int>();
            connettoriALI.Add(Connettore.ATX20piu4pin, 1);
            connettoriALI.Add(Connettore.EPS4piu4pin, 1);
            connettoriALI.Add(Connettore.PCIE6piu2pin, 1);
            connettoriALI.Add(Connettore.SATA15pin, 9);
            connettoriALI.Add(Connettore.Molex4pin, 6);
            connettoriALI.Add(Connettore.Floppy34pin, 2);

            Alimentatore psu = new Alimentatore(FormatoAlimentatore.ATX, 550, Rank.Plus_80_Bronze, false, "ProSeries 550W Core Edition", "XFX", 70, "", 2, connettoriALI);
            _componenti.Add(psu);

            Dictionary<Connettore, int> connettoriALI1 = new Dictionary<Connettore, int>();
            connettoriALI1.Add(Connettore.ATX20piu4pin, 1);
            connettoriALI1.Add(Connettore.EPS4piu4pin, 1);
            connettoriALI1.Add(Connettore.PCIE6piu2pin, 2);
            connettoriALI1.Add(Connettore.SATA15pin, 3);
            connettoriALI1.Add(Connettore.Molex4pin, 2);
            connettoriALI1.Add(Connettore.Floppy34pin, 1);

            Alimentatore psu1 = new Alimentatore(FormatoAlimentatore.SFX, 500, Rank.Plus_80_Gold, true, "SFX SST-SX500-LG", "Silver Stone", 100, "", 1.4F, connettoriALI1);
            _componenti.Add(psu1);

            Dictionary<Connettore, int> cpci = new Dictionary<Connettore, int>();
            cpci.Add(Connettore.PCIE6piu2pin, 1);
            SchedaPCI pci = new SchedaPCI(TipoSchedePCI.SchedaAudio, 40, "SchedaPCI", "", 100, "", 0, cpci);
            _componenti.Add(pci);

            SistemaOperativo os = new SistemaOperativo( "Home_Premium", 64, "Windows 7", "Windows", 50, "", 0, new Dictionary<Connettore, int>());
            Ventola v = new Ventola( Diametro.d120, true, 0, 0, 0, "Ventola", "", 20, "", 0, new Dictionary<Connettore, int>());
            _componenti.Add(os);
            _componenti.Add(v);

            //Salvataggio.ScriviComponenti("..\\..\\ComponentiDatabase.xml", _componenti);
        
        }