Exemple #1
0
        public void RefreshIscrizioni()
        {
            if (persona == null || !searchCambiaQualcosa())
            {
                return;
            }

            //panelIscrizioni.SuspendLayout();
            List <Iscrizione> ordered = persona.Iscrizioni /*.OrderByDescending(x => x.Saldato) */.OrderByDescending(x => x.corso.DataInizio).ToList();

            // per ogni panel
            while (panelIscrizioni.Controls.Count > 0)
            {
                var controltoremove = panelIscrizioni.Controls[0];
                panelIscrizioni.Controls.Remove(controltoremove);   // eliminalo
                controltoremove.Dispose();
            }

            foreach (Iscrizione i in ordered)
            {
                if (!violaCriteriRicercaIscrizioni(i))
                {
                    PanelIscrizione pi = new PanelIscrizione();
                    pi.setIscrizione(i, mainform, this);
                    pi.Dock = DockStyle.Fill;

                    TabPage tp = new TabPage(i.corso.Descrizione);
                    tp.Controls.Add(pi);

                    panelIscrizioni.TabPages.Add(tp);
                }
            }
            //panelIscrizioni.ResumeLayout();
        }
Exemple #2
0
        public void Save()
        {
            UpdatePersona();
            DB.instance.save(persona);

            foreach (TabPage page in panelIscrizioni.TabPages)
            {
                foreach (Control control in page.Controls)
                {
                    if (control is PanelIscrizione)
                    {
                        PanelIscrizione p = control as PanelIscrizione;
                        try { p.Save(); }
                        catch { }
                    }
                }
            }
        }
Exemple #3
0
        private bool searchCambiaQualcosa()
        {
            List <Iscrizione> processed = new List <Iscrizione>();

            foreach (Control c in panelIscrizioni.Controls)
            {
                // se non si riesce a convertire
                PanelIscrizione pi = c as PanelIscrizione;
                if (pi == null)
                {
                    return(true);
                }

                // se ora l'iscrizione non deve più essere visualizzata
                if (violaCriteriRicercaIscrizioni(pi.iscrizione))
                {
                    return(true);
                }

                // se l'iscrizione non esiste più
                if (!persona.Iscrizioni.Contains(pi.iscrizione))
                {
                    return(true);
                }

                processed.Add(pi.iscrizione);
            }

            foreach (Iscrizione i in persona.Iscrizioni)
            {
                if (!processed.Contains(i) && !violaCriteriRicercaIscrizioni(i))     // c'è nei controlli, e ora non viola i criteri
                {
                    return(true);
                }
            }

            return(false);
        }