From 27e0577919ff577c9f7f43f85d093f55c32848b7 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Tue, 31 Jan 2017 13:21:42 +0100 Subject: [PATCH] initial import --- Yavsc/ApiControllers/ActivityApiController.cs | 148 ++++++++++++++++++ .../ApiControllers/PerformersApiController.cs | 24 +++ 2 files changed, 172 insertions(+) create mode 100644 Yavsc/ApiControllers/ActivityApiController.cs create mode 100644 Yavsc/ApiControllers/PerformersApiController.cs diff --git a/Yavsc/ApiControllers/ActivityApiController.cs b/Yavsc/ApiControllers/ActivityApiController.cs new file mode 100644 index 00000000..a2e310a1 --- /dev/null +++ b/Yavsc/ApiControllers/ActivityApiController.cs @@ -0,0 +1,148 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNet.Http; +using Microsoft.AspNet.Mvc; +using Microsoft.Data.Entity; +using Yavsc.Models; +using Yavsc.Models.Workflow; + +namespace Yavsc.Controllers +{ + [Produces("application/json")] + [Route("api/activity")] + public class ActivityApiController : Controller + { + private ApplicationDbContext _context; + + public ActivityApiController(ApplicationDbContext context) + { + _context = context; + } + + // GET: api/ActivityApi + [HttpGet] + public IEnumerable GetActivities() + { + return _context.Activities.Include(a=>a.Forms); + } + + // GET: api/ActivityApi/5 + [HttpGet("{id}", Name = "GetActivity")] + public async Task GetActivity([FromRoute] string id) + { + if (!ModelState.IsValid) + { + return HttpBadRequest(ModelState); + } + + Activity activity = await _context.Activities.SingleAsync(m => m.Code == id); + + if (activity == null) + { + return HttpNotFound(); + } + + return Ok(activity); + } + + // PUT: api/ActivityApi/5 + [HttpPut("{id}")] + public async Task PutActivity([FromRoute] string id, [FromBody] Activity activity) + { + if (!ModelState.IsValid) + { + return HttpBadRequest(ModelState); + } + + if (id != activity.Code) + { + return HttpBadRequest(); + } + + _context.Entry(activity).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!ActivityExists(id)) + { + return HttpNotFound(); + } + else + { + throw; + } + } + + return new HttpStatusCodeResult(StatusCodes.Status204NoContent); + } + + // POST: api/ActivityApi + [HttpPost] + public async Task PostActivity([FromBody] Activity activity) + { + if (!ModelState.IsValid) + { + return HttpBadRequest(ModelState); + } + + _context.Activities.Add(activity); + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateException) + { + if (ActivityExists(activity.Code)) + { + return new HttpStatusCodeResult(StatusCodes.Status409Conflict); + } + else + { + throw; + } + } + + return CreatedAtRoute("GetActivity", new { id = activity.Code }, activity); + } + + // DELETE: api/ActivityApi/5 + [HttpDelete("{id}")] + public async Task DeleteActivity([FromRoute] string id) + { + if (!ModelState.IsValid) + { + return HttpBadRequest(ModelState); + } + + Activity activity = await _context.Activities.SingleAsync(m => m.Code == id); + if (activity == null) + { + return HttpNotFound(); + } + + _context.Activities.Remove(activity); + await _context.SaveChangesAsync(); + + return Ok(activity); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + _context.Dispose(); + } + base.Dispose(disposing); + } + + private bool ActivityExists(string id) + { + return _context.Activities.Count(e => e.Code == id) > 0; + } + } +} \ No newline at end of file diff --git a/Yavsc/ApiControllers/PerformersApiController.cs b/Yavsc/ApiControllers/PerformersApiController.cs new file mode 100644 index 00000000..764ac9d1 --- /dev/null +++ b/Yavsc/ApiControllers/PerformersApiController.cs @@ -0,0 +1,24 @@ + +using System.Collections.Generic; +using Microsoft.AspNet.Mvc; +using System.Linq; +using Yavsc.Models; +using Yavsc.Models.Workflow; + +namespace Yavsc.Controllers +{ + [Produces("application/json")] + [Route("api/performers")] + public class PerformersApiController : Controller + { + ApplicationDbContext dbContext; + public PerformersApiController(ApplicationDbContext context) + { + dbContext = context; + } + public IEnumerable Get() + { + return dbContext.Performers.Where(p=>p.Active && p.AcceptPublicContact); + } + } +} \ No newline at end of file