public DzienRoboczyPracownikaToSend(DzienRoboczyPracownika drp)
 {
     dzien     = drp.DzienTygodnia.Id;
     pracownik = drp.Pracownik.Id;
     poczatek  = drp.Poczatek;
     koniec    = drp.Koniec;
 }
        //public void praca(DateTime poczatek, DateTime koniec, int stanowisko)
        public Boolean praca(DateTime poczatek, DateTime koniec, int stanowisko)
        {
            TimeSpan time = koniec.Subtract(poczatek);

            if (poprzedni != new DateTime())
            {
                godzinDnia += time.TotalHours;
                godzin     += time.TotalHours;

                TimeSpan diff = poczatek.Subtract(poprzedni);
                if (diff.TotalMinutes > 0 && diff.TotalHours < MIN_ODSTEP)
                {
                    okienek += Math.Pow(diff.TotalHours, diff.TotalHours);
                }
                else
                {
                    double nadg = godzinDnia - MAX_GODZIN;
                    if (nadg > 0)
                    {
                        nadgodzin += nadg;

                        nadg = nadg - MAX_NADGODZIN;
                        if (nadg > 0)
                        {
                            ponadNadgodzin += nadg;
                            nadgodzin      -= nadg;
                        }
                    }
                }
            }

            Models.DzienRoboczyPracownika drp = dniRobocze.FirstOrDefault(d => d.DzienTygodnia.Id == (int)poczatek.DayOfWeek);
            if (drp == null || drp.Poczatek.TimeOfDay > poczatek.TimeOfDay || drp.Koniec.TimeOfDay < koniec.TimeOfDay)
            {
                return(false);
                //zlaGodzina += time.TotalHours;
            }

            Models.Dzien ur = urlop.FirstOrDefault(u => u.Data.Date == poczatek.Date || (u.Data.AddMinutes(-1)).Date == koniec.Date);
            if (ur != null)
            {
                return(false);
                //pracaUrlop += time.TotalHours;
            }

            Models.Stanowisko st = stanowiska.FirstOrDefault(s => s.Id == stanowisko);
            if (st == null)
            {
                return(false);
                //zleStanowisko += time.TotalHours;
            }

            poprzedni = koniec;
            return(true);
        }