Beispiel #1
0
        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);
        }
Beispiel #2
0
        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)));
        }
Beispiel #3
0
        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)));
        }
Beispiel #4
0
        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.
        }