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); }
/// <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); } }
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); }