public Event Update(Event dest, FullEventViewModel src) { Update(dest, (EventViewModel)src); Mapper.Merge(dest.Reports, src.Reports, ReportMapper); Mapper.Merge(dest.Images, src.Images, ImageMapper); return(dest); }
public async Task <IActionResult> Post([FromBody] FullEventViewModel model) { var @event = EventMapper.Update(new Event(), model); await DbContext.Events.AddAsync(@event); await DbContext.SaveChangesAsync(); return(CreatedAtRoute("GetEvent", new { @event.Id }, EventMapper.MapFull(@event))); }
public async Task <IActionResult> Put(int id, [FromBody] FullEventViewModel model) { var @event = await DbContext.Events.SingleOrDefaultAsync(e => e.Id == id); if (@event == null) { return(NotFound()); } EventMapper.Update(@event, model); await DbContext.SaveChangesAsync(); return(Ok(EventMapper.MapFull(@event))); }
public async Task <IActionResult> Publish([FromBody] FullEventViewModel model) { if (model.Id > 0) { //Publish existing. var @event = await DbContext.Events.SingleOrDefaultAsync(e => e.Id == model.Id); if (@event == null) { return(NotFound()); } if (@event.State == Models.EntityState.Published) { return(NoContent()); } if (@event.Publish()) { await DbContext.SaveChangesAsync(); return(NoContent()); } } else { //Create and publish if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var @event = EventMapper.Update(new Event(), model); if (@event.Publish()) { await DbContext.Events.AddAsync(@event); await DbContext.SaveChangesAsync(); return(CreatedAtRoute("GetEvent", new { @event.Id }, EventMapper.MapFull(@event))); } } return(BadRequest()); //TODO Error messages. }