Exemple #1
0
        public WorkYear(int year, WorkDayParserSettings parserSettings, int hitListLookBackInWeeks, float hoursPerDay, PNSearchViewModel pnSearch, PositionSearchViewModel positionSearch)
        {
            this.hitListLookBackInWeeks = hitListLookBackInWeeks;
            this.pnSearch = pnSearch;
            this.positionSearch = positionSearch;
            this.Year = year;
            this.Months = new ObservableCollection<WorkMonth>();
            this.Weeks = new ObservableCollection<WorkWeek>();

            var germanSpecialDays = SpecialDaysUtils.GetGermanSpecialDays(year);

            var cal = new GregorianCalendar();
            for (int month = 1; month <= cal.GetMonthsInYear(year); month++)
            {
                WorkMonth wm = new WorkMonth(year, month, germanSpecialDays, parserSettings, hoursPerDay);
                this.Months.Add(wm);
                foreach (var workWeek in wm.Weeks)
                {
                    this.Weeks.Add(workWeek);
                    workWeek.PropertyChanged += this.workWeek_PropertyChanged;
                }
            }
            this.ProjectHitlist = new QuickFillObservableCollection<HitlistInfo>();
            this.PositionHitlist = new QuickFillObservableCollection<HitlistInfo>();
            this.UpdateProjectHitlistAsync();
            this.UpdatePositionHitlistAsync();
        }
Exemple #2
0
        public WorkYear(int year, IEnumerable<ShortCut> shortCuts, int hitListLookBackInWeeks, float hoursPerDay, PNSearchViewModel pnSearch, PositionSearchViewModel positionSearch)
        {
            this.hitListLookBackInWeeks = hitListLookBackInWeeks;
              this.pnSearch = pnSearch;
              this.positionSearch = positionSearch;
              this.Year = year;
              this.Months = new ObservableCollection<WorkMonth>();
              this.Weeks = new ObservableCollection<WorkWeek>();

              var germanSpecialDays = SpecialDaysUtils.GetGermanSpecialDays(year);

              var cal = new GregorianCalendar();
              for (int month = 1; month <= cal.GetMonthsInYear(year); month++) {
            WorkMonth wm = new WorkMonth(year, month, germanSpecialDays, shortCuts, hoursPerDay);
            this.Months.Add(wm);
            foreach (var workWeek in wm.Weeks) {
              this.Weeks.Add(workWeek);
              workWeek.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(this.workWeek_PropertyChanged);
            }
              }
        }
Exemple #3
0
 private static async Task<IEnumerable<HitlistInfo>> GetPositionHitlistAsync(IEnumerable<WorkMonth> months, int lookBackInWeeks, PositionSearchViewModel posSearchViewModel)
 {
     return await Task.Factory.StartNew(() => {
         if (posSearchViewModel != null)
         {
             var allDays = months.SelectMany(m => m.Days);
             var daysFromLookback = lookBackInWeeks > 0 ? allDays.Where(m => m.DateTime > DateTime.Now.AddDays(lookBackInWeeks * -7)) : allDays;
             var hitlistInfos = daysFromLookback
                 .SelectMany(d => d.Items)
                 .GroupBy(p => p.Position)
                 .Select(g =>
                     new HitlistInfo(
                         g.Key,
                         g.Count(),
                         g.Sum(wi => wi.HoursDuration),
                         posSearchViewModel.GetDescriptionForPositionNumber(g.Key))
                 );
             return hitlistInfos.OrderByDescending(g => g.HoursUsed);
         }
         else
         {
             return Enumerable.Empty<HitlistInfo>();
         }
     });
 }