Esempio n. 1
0
        public void CreateAbsence(int personId, DateTime start, DateTime end, bool isPresent = false)
        {
            using (var db = new DataContext())
            {
                var person = db.People.Find(personId);
                if (person == null) { throw new EntityNotFountException(); }

                var absence = new Absence()
                {
                    Person = person,
                    End = end,
                    Start = start,
                    IsPresent = isPresent,
                };

                new AbsenceAdapter(absence)
                    .Validate()
                    .ClearOccupations(db);

                this.RemoveFromSchedule(person, start, end, db);

                db.Absences.Add(absence);
                db.SaveChanges();
            }
        }
Esempio n. 2
0
 public AbsenceChecker(Absence absence, DateTime date)
 {
     this.Absence = absence;
     this.Date = date;
 }
Esempio n. 3
0
 public AbsenceAdapter(Absence absence)
 {
     this.Absence = absence;
 }
Esempio n. 4
0
 public AbsenceValidator(Absence absence)
 {
     this.Absence = absence;
 }
Esempio n. 5
0
        public ValidationStatusDto IsValidAbsence(int personId, DateTime start, DateTime end)
        {
            using (var db = new DataContext())
            {
                var person = (from b in db.People
                              where b.Id == personId
                              select b).FirstOrDefault();
                if (person == null) { throw new EntityNotFountException(); }

                var absence = new Absence()
                {
                    Person = person,
                    End = end,
                    Start = start,
                };

                var validator = new AbsenceValidator(absence);
                return validator.Validate()
                    ? ValidationStatusDto.Valid()
                    : ValidationStatusDto.Invalid(validator.Error);

            }
        }