public async Task <IActionResult> PutAsync(int id, [FromBody] SaveCompetitionResource saveCompetitionResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }

            var c      = mapper.Map <SaveCompetitionResource, Competition>(saveCompetitionResource);
            var result = await competitionService.UpdateAsync(id, c);

            if (!result.Success)
            {
                return(BadRequest(result.Message));
            }

            var coupleResource = mapper.Map <Competition, CompetitionResource>(result.competition);

            return(Ok(coupleResource));
        }
Пример #2
0
        public async Task <IActionResult> CreateCompetition([FromBody] SaveCompetitionResource saveCompetitionResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var competition = mapper.Map <SaveCompetitionResource, Competition>(saveCompetitionResource);
            await context.Competitions.AddAsync(competition);

            await context.SaveChangesAsync();

            competition = await context.Competitions
                          .Include(p => p.CreatedBy)
                          .Include(p => p.Participants)
                          .ThenInclude(p => p.User)
                          .SingleOrDefaultAsync(p => p.Id == competition.Id);

            return(Ok(mapper.Map <Competition, ICompetitionResource>(competition)));
        }
Пример #3
0
        public async Task <IActionResult> UpdateCompetition(int id, [FromBody] SaveCompetitionResource saveCompetitionResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var competition = await context.Competitions
                              .Include(p => p.CreatedBy)
                              .Include(p => p.Participants)
                              .ThenInclude(p => p.User)
                              .SingleOrDefaultAsync(p => p.Id == id);

            if (competition == null)
            {
                return(NotFound());
            }

            mapper.Map(saveCompetitionResource, competition);

            await context.SaveChangesAsync();

            return(Ok(mapper.Map <Competition, ICompetitionResource>(competition)));
        }