예제 #1
0
        public void Visit(Evento evento)
        {
            int numCoordinatoriSettore;

            foreach (Settore settore in evento.SettoriAperti)
            {
                numCoordinatoriSettore = evento.GetAssegnamentiSettore(settore).GetAddetti(MansioneFactory.GetMansione("Coordinatore")).Count;
                if (numCoordinatoriSettore < MinimoCoordinatori)
                {
                    throw new ViolatedRuleException(MinimoCoordinatori - numCoordinatoriSettore,
                                                    String.Format("Settore {0} viola la regola di numero minimo di Coordinatori per la mancanza di {1} Coordinatore", settore.Nome, MinimoCoordinatori - numCoordinatoriSettore));
                }
            }
        }
예제 #2
0
        public void Visit(Evento evento)
        {
            int nas;
            int numStewardSettore;

            foreach (Settore settore in evento.SettoriAperti)
            {
                nas = (int)Math.Ceiling((settore.GetCapienzaInData(evento.DataInizio, Impianto.GetInstance()) / 250.0) * (1 + (evento.GradoRischio / 10.0)));
                numStewardSettore = (evento.GetAssegnamentiSettore(settore).GetAddetti(MansioneFactory.GetMansione("Steward Corta")).Count +
                                     evento.GetAssegnamentiSettore(settore).GetAddetti(MansioneFactory.GetMansione("Steward Lunga")).Count);
                if (numStewardSettore < nas)
                {
                    throw new ViolatedRuleException(nas - numStewardSettore,
                                                    String.Format("Settore {0} viola la regola di numero minimo di Steward per la mancanza di {1} Steward", settore.Nome, nas - numStewardSettore));
                }
            }
        }
예제 #3
0
        public void Visit(Evento evento)
        {
            int minimoCapiUnita;
            int numCapiUnitaSettore;

            foreach (Settore settore in evento.SettoriAperti)
            {
                minimoCapiUnita = (int)Math.Ceiling((evento.GetAssegnamentiSettore(settore).GetAddetti(MansioneFactory.GetMansione("Steward Lunga")).Count +
                                                     evento.GetAssegnamentiSettore(settore).GetAddetti(MansioneFactory.GetMansione("Steward Corta")).Count) / 10.0);
                numCapiUnitaSettore = evento.GetAssegnamentiSettore(settore).GetAddetti(MansioneFactory.GetMansione("Capo Unità")).Count;
                if (numCapiUnitaSettore < minimoCapiUnita)
                {
                    throw new ViolatedRuleException(minimoCapiUnita - numCapiUnitaSettore,
                                                    String.Format("Settore {0} viola la regola di numero minimo di Capi Unita per la mancanza di {1} Capo Unita", settore.Nome, minimoCapiUnita - numCapiUnitaSettore));
                }
            }
        }