public void Add(IEnumerable <int> listPersonId, DayExtensions dayExtension)
        {
            var persons       = _context.Persons.Include(p => p.DayExtensions).Where(p => listPersonId.Contains(p.Id));
            var extensionType =
                _context.ExtensionTypes.FirstOrDefault(e => e.Id.Equals(dayExtension.ExtensionTypeId));

            dayExtension.CreatedAt = DateTimeOffset.Now;
            foreach (var person in persons)
            {
                if (!ValidateMaxHours(person.DayExtensions
                                      .Where(d => d.AffectationDate.Equals(dayExtension.AffectationDate)).Sum(d => d.HoursNumber) + dayExtension.HoursNumber))
                {
                    var newDayExtension = GetNewInstance(dayExtension, extensionType);
                    person.DayExtensions.Add(newDayExtension);
                    _context.Update(person);
                }
                else
                {
                    _validationService.Add("HoursNumber", Enumerations.ErrorType.Warning,
                                           string.Format(ErrorMessages.MaxHours, $"{person.Name} {person.LastName}"));
                }

                _context.SaveChanges();
            }
        }
Beispiel #2
0
        public Trainings Add(int personId, Trainings training)
        {
            var person = _context.Persons.Include(p => p.Trainings).FirstOrDefault(p => p.Id.Equals(personId));

            training.Certification = _context.Certifications.FirstOrDefault(c => c.Id.Equals(training.CertificationId));
            training.CreatedAt     = DateTimeOffset.Now;
            person.Trainings.Add(training);
            _context.Persons.Update(person);
            _context.SaveChanges();

            return(training);
        }
        public bool Add(List <int> personsIds, List <DateTime> vacationsDates, Vacations vacation)
        {
            if (!vacationsDates.Any())
            {
                _validationService.Add("Date", Enumerations.ErrorType.Error, ErrorMessages.DatesRequired);
                return(false);
            }

            try
            {
                var persons     = _context.Persons.Include(p => p.Vacations).Where(p => personsIds.Contains(p.Id)).ToList();
                var absenseType = _context.AbsenceTypes.FirstOrDefault(a => a.Id.Equals(vacation.AbsenseTypeId));

                foreach (var person in persons)
                {
                    if (!ValidateMaxDays(person.Vacations.Count(v => v.Date.Year.Equals(vacation.Date.Year))))
                    {
                        foreach (var date in vacationsDates)
                        {
                            if (!date.ValidateExistingDate(person.Vacations.Select(v => v.Date)))
                            {
                                var newVacation = GetNewInstance(vacation, absenseType, date);
                                person.Vacations.Add(newVacation);
                                _context.Update(person);
                            }
                            else
                            {
                                _validationService.Add("Date", Enumerations.ErrorType.Error,
                                                       string.Format(ErrorMessages.ExistingDateBulk, $"{person.Name} {person.LastName}", date.ToShortDateString()));
                            }
                        }
                    }
                    else
                    {
                        _validationService.Add("Date", Enumerations.ErrorType.Error, string.Format(ErrorMessages.MaxDays, $"{person.Name} {person.LastName}"));
                    }
                }

                _context.SaveChanges();

                return(true);
            }
            catch (Exception ex)
            {
                _validationService.Add("Date", Enumerations.ErrorType.Error, (ex.InnerException ?? ex).Message);
                return(false);
            }
        }
Beispiel #4
0
        public bool Add(List <int> personsId, DisplacementsDay displacementsDay)
        {
            var persons          = _context.Persons.Include(p => p.DisplacementsDays).Where(p => personsId.Contains(p.Id)).ToList();
            var displacementType = _context.DisplacementTypes.FirstOrDefault(d => d.Id.Equals(displacementsDay.DisplacementTypeId));

            foreach (var person in persons)
            {
                if (!ValidateMaxHours(person.DisplacementsDays.Where(d => d.DisplacementDate.Equals(displacementsDay.DisplacementDate)).Sum(d => d.HoursNumber) + displacementsDay.HoursNumber))
                {
                    var newDisplacement = GetNewInstance(displacementsDay, displacementType);
                    person.DisplacementsDays.Add(newDisplacement);
                    _context.Update(person);
                }
                else
                {
                    _validationService.Add("HoursNumber", Enumerations.ErrorType.Warning,
                                           string.Format(ErrorMessages.MaxHours, $"{person.Name} {person.LastName}"));
                }
            }

            _context.SaveChanges();

            return(true);
        }
Beispiel #5
0
 public void Update(Persons person)
 {
     person.ModificatedAt = DateTimeOffset.Now;
     _context.Persons.Update(person);
     _context.SaveChanges();
 }