예제 #1
0
        public static bool CheckKernzeitDoppelBesetzungAbgedeckt(this Arbeitstag arbeitstag, GruppenTyp gruppe)
        {
            if (!gruppe.IstFarbGruppe())
            {
                return(true);
            }

            var gruppenzeiten = arbeitstag.GetMitarbeiterArbeitszeiten(gruppe);

            if (gruppenzeiten.Count < 2)
            {
                return(false);
            }

            if (gruppenzeiten.Count == 2)
            {
                var anzDoppelBesetzung = 0;
                foreach (var range in gruppenzeiten)
                {
                    var tp = new TimePeriodCollection(new List <ITimePeriod>()
                    {
                        range
                    });
                    if (tp.HasInside(arbeitstag.KernzeitDoppelBesetzungRange))
                    {
                        anzDoppelBesetzung++;
                    }
                }
                return(anzDoppelBesetzung >= 2);
            }

            //07:00-11:00
            //09:00-13:00
            //11:00-16:00
            var zeitzeiger = arbeitstag.KernzeitDoppelBesetzungRange.Start;

            while (zeitzeiger <= arbeitstag.KernzeitDoppelBesetzungRange.End)
            {
                var count = gruppenzeiten.Count(x => x.HasInside(zeitzeiger));
                if (count < 2)
                {
                    return(false);
                }

                zeitzeiger = zeitzeiger.AddMinutes(1);
            }

            return(true);
        }
예제 #2
0
        /// <summary>
        ///    <SolidColorBrush x:Key="ColorGruppeGelb" Color="DarkGoldenrod"/>
        ///    <SolidColorBrush x:Key="ColorGruppeGruen" Color="LightGreen"/>
        ///    <SolidColorBrush x:Key="ColorGruppeRot" Color="LightCoral"/>
        ///    <SolidColorBrush x:Key="ColorGruppeNest" Color="LightBlue"/>
        /// </summary>
        /// <param name="gruppe"></param>
        /// <returns></returns>
        public static SolidColorBrush GetFarbeFromResources(this GruppenTyp gruppe)
        {
            var farbe = new SolidColorBrush();

            if (!gruppe.IstFarbGruppe())
            {
                return(farbe);
            }

            var key = "";

            switch (gruppe)
            {
            case GruppenTyp.Gelb:
                key = "ColorGruppeGelb";
                break;

            case GruppenTyp.Gruen:
                key = "ColorGruppeGruen";
                break;

            case GruppenTyp.Rot:
                key = "ColorGruppeRot";
                break;

            case GruppenTyp.Nest:
                key = "ColorGruppeNest";
                break;
            }

            try
            {
                var color = Application.Current.TryFindResource(key) as SolidColorBrush;

                if (color == null)
                {
                    return(farbe);
                }

                farbe = color;
                return(farbe);
            }
            catch
            {
                return(farbe);
            }
        }
예제 #3
0
        public static bool CheckKernzeitAbgedeckt(this Arbeitstag arbeitstag, GruppenTyp gruppe)
        {
            if (!gruppe.IstFarbGruppe())
            {
                return(true);
            }

            var gruppenzeiten = arbeitstag.GetMitarbeiterArbeitszeiten(gruppe);

            if (gruppenzeiten.Count == 0)
            {
                return(false);
            }

            var tp         = new TimePeriodCollection(gruppenzeiten);
            var obKernzeit = tp.HasInside(arbeitstag.KernzeitBasisRange);

            return(obKernzeit);
        }