コード例 #1
0
        public async Task <IActionResult> UpdateTrack([FromRoute] int id, [FromBody] ConferenceDTO.Track input)
        {
            var track = await _db.FindAsync <Track>(id);

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

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            track.Name         = input.Name;
            track.Slug         = input.Name.ToSlug();
            track.ConferenceID = input.ConferenceID;

            // TODO: Handle exceptions, e.g. concurrency
            await _db.SaveChangesAsync();

            var result = track.MapTrackResponse();

            return(Ok(result));
        }
コード例 #2
0
 public static Track MapTrack(this ConferenceDTO.Track track) =>
 new Track
 {
     ID           = track.ID,
     Name         = track.Name,
     ConferenceId = track.ConferenceId
 };
コード例 #3
0
        public async Task <IActionResult> Post([FromBody] ConferenceDTO.Track input)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var track = new Track
            {
                Name         = input.Name,
                Slug         = input.Name.ToSlug(),
                ConferenceID = input.ConferenceID
            };

            _db.Tracks.Add(track);
            await _db.SaveChangesAsync();

            var result = track.MapTrackResponse();

            return(CreatedAtAction(nameof(GetTrack), new { id = track.TrackID }, result));
        }