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 )); }