public async Task <MasterActivityDto> CreateMasterActivity([FromBody] MasterActivityCreationDto masterActivityDto)
        {
            var plan = await _context.MembershipType.Include(l => l.Levels).SingleOrDefaultAsync(m => m.Id == masterActivityDto.MembershipTypeId);

            var level = await _context.Level.SingleOrDefaultAsync(l => l.Id == masterActivityDto.LevelId);

            var tipoActividad = await _context.TipoActividad.SingleOrDefaultAsync(t => t.Id == masterActivityDto.TipoActividadId);

            if (plan == null || level == null || tipoActividad == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            if (!isValidDto(masterActivityDto) || !plan.Levels.Contains(level))
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }
            var masterActivity = await _context.MasterActivity
                                 .SingleOrDefaultAsync(a => a.MembershipTypeId == masterActivityDto.MembershipTypeId &&
                                                       a.LevelId == masterActivityDto.LevelId &&
                                                       a.Hour == masterActivityDto.Hour &&
                                                       a.Minutes == masterActivityDto.Minutes);

            if (masterActivity != null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }

            masterActivity = _mapper.Map <MasterActivity>(masterActivityDto);
            _context.MasterActivity.Add(masterActivity);
            await _context.SaveChangesAsync();

            return(_mapper.Map <MasterActivityDto>(masterActivity));
        }
 private bool isValidDto(MasterActivityCreationDto masterActivityDto)
 {
     return(!(masterActivityDto.DateOfWeek < 1 ||
              masterActivityDto.DateOfWeek > 7 ||
              (masterActivityDto.Duration % 15) != 0 ||
              masterActivityDto.Hour > 23 ||
              masterActivityDto.Hour < 0 ||
              masterActivityDto.Minutes > 59 ||
              masterActivityDto.Minutes < 0 ||
              masterActivityDto.AmountOfEnrollment < 0
              ));
 }