private async Task ValidateDateEvent(DateEventDto item)
        {
            if (item is null)
            {
                throw new BusinessLogicException(StringRes.NullEntityMsg, new ArgumentNullException(nameof(item)));
            }

            var weeklyEvent = await _weeklyEventEntityService.GetByIdAsync(item.Id);

            if ((int)item.DateTime.DayOfWeek != weeklyEvent.DayOfWeek)
            {
                throw new BusinessLogicException(StringRes.WrongDayOfWeekMsg, fieldName: nameof(item));
            }

            await EnsureDatesNotCrossing(item);
        }
        private async Task EnsureDatesNotCrossing(DateEventDto item)
        {
            var eventsWithTheSameTrainer = await _dateEventEntityService.GetAll()
                                           .Where(e => e.Id != item.Id && e.TrainerId == item.TrainerId).ToListAsync();

            var itemWeeklyEvent = await _weeklyEventEntityService.GetByIdAsync(item.WeeklyEventId);

            var itemFitnessEvent = await _fitnessEventEntityService.GetByIdAsync(itemWeeklyEvent.FitnessEventId);

            foreach (var one in eventsWithTheSameTrainer)
            {
                var weeklyEvent = await _weeklyEventEntityService.GetByIdAsync(one.WeeklyEventId);

                var fitnessEvent = await _fitnessEventEntityService.GetByIdAsync(weeklyEvent.FitnessEventId);

                if (one.DateTime < item.DateTime ?
                    CheckIfAnyTimeCrosses(one.DateTime, fitnessEvent.Minutes, item.DateTime) :
                    CheckIfAnyTimeCrosses(item.DateTime, itemFitnessEvent.Minutes, one.DateTime))
                {
                    throw new BusinessLogicException(StringRes.TimeCrossesMsg, fieldName: nameof(item.DateTime));
                }
            }
        }
        public async Task UpdateDateEventAsync(DateEventDto item)
        {
            await ValidateDateEvent(item);

            await _dateEventEntityService.UpdateAsync(_mapper.Map <DateEvent>(item));
        }
        // DATEEVENT
        public async Task <int> CreateDateEventAsync(DateEventDto item)
        {
            await ValidateDateEvent(item);

            return(await _dateEventEntityService.CreateAsync(_mapper.Map <DateEvent>(item)));
        }