public async Task <ScheduleForViewDto> AddSchedule(DataForScheduleDto dataFromClient)
        {
            var eventFromDb = await _context.Events.Include(e => e.Rounds)
                              .FirstOrDefaultAsync(e => e.Id == dataFromClient.EventId);

            if (eventFromDb == null)
            {
                throw new DataInvalidException("Invalid event ID");
            }
            var newRound = _mapper.Map <Schedule>(dataFromClient);

            eventFromDb.Rounds.Add(newRound);
            eventFromDb.NumberOfRounds += 1;
            if (dataFromClient.RoundId == 0)
            {
                eventFromDb.Day      = dataFromClient.Day;
                eventFromDb.Datetime = dataFromClient.Datetime;
            }

            await _context.Rounds.AddAsync(newRound);

            await _context.SaveChangesAsync();

            return(_mapper.Map <ScheduleForViewDto>(newRound));
        }
Beispiel #2
0
        public async Task <ScheduleForViewDto> UpdateSchedule(DataForScheduleDto dataFromClient)
        {
            var eventFromSchedule = await _context.Rounds.FirstOrDefaultAsync(e =>
                                                                              e.EventId == dataFromClient.EventId && e.RoundId == dataFromClient.RoundId);

            eventFromSchedule.Day      = dataFromClient.Day;
            eventFromSchedule.Datetime = dataFromClient.Datetime;
            if (dataFromClient.RoundId == 0)
            {
                var scheduledEvent = await _context.Events.FirstOrDefaultAsync(e => e.Id == dataFromClient.EventId);

                scheduledEvent.Day      = dataFromClient.Day;
                scheduledEvent.Datetime = dataFromClient.Datetime;
            }

            await _context.SaveChangesAsync();

            return(_mapper.Map <ScheduleForViewDto>(eventFromSchedule));
        }
Beispiel #3
0
 public async Task <ActionResult <ScheduleForViewDto> > UpdateSchedule(DataForScheduleDto dataFromClient)
 {
     return(Ok(await _repo.UpdateSchedule(dataFromClient)));
 }
Beispiel #4
0
 public async Task <ActionResult <ScheduleForViewDto> > AddSchedule(DataForScheduleDto data)
 {
     return(Ok(await _repo.AddSchedule(data)));
 }