diff --git a/Yavsc/ApiControllers/BursherProfilesApiController.cs b/Yavsc/ApiControllers/BursherProfilesApiController.cs new file mode 100644 index 00000000..873f5171 --- /dev/null +++ b/Yavsc/ApiControllers/BursherProfilesApiController.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.Haircut; + +namespace Yavsc.Controllers +{ + [Produces("application/json")] + [Route("api/bursherprofiles")] + public class BursherProfilesApiController : Controller + { + private ApplicationDbContext _context; + + public BursherProfilesApiController(ApplicationDbContext context) + { + _context = context; + } + + // GET: api/BursherProfilesApi + [HttpGet] + public IEnumerable GetBrusherProfile() + { + return _context.BrusherProfile.Include(p=>p.BaseProfile).Where(p => p.BaseProfile.Active); + } + + // GET: api/BursherProfilesApi/5 + [HttpGet("{id}", Name = "GetBrusherProfile")] + public async Task GetBrusherProfile([FromRoute] string id) + { + if (!ModelState.IsValid) + { + return HttpBadRequest(ModelState); + } + + BrusherProfile brusherProfile = await _context.BrusherProfile.SingleAsync(m => m.UserId == id); + + if (brusherProfile == null) + { + return HttpNotFound(); + } + + return Ok(brusherProfile); + } + + // PUT: api/BursherProfilesApi/5 + [HttpPut("{id}")] + public async Task PutBrusherProfile([FromRoute] string id, [FromBody] BrusherProfile brusherProfile) + { + if (!ModelState.IsValid) + { + return HttpBadRequest(ModelState); + } + + if (id != brusherProfile.UserId) + { + return HttpBadRequest(); + } + + _context.Entry(brusherProfile).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!BrusherProfileExists(id)) + { + return HttpNotFound(); + } + else + { + throw; + } + } + + return new HttpStatusCodeResult(StatusCodes.Status204NoContent); + } + + // POST: api/BursherProfilesApi + [HttpPost] + public async Task PostBrusherProfile([FromBody] BrusherProfile brusherProfile) + { + if (!ModelState.IsValid) + { + return HttpBadRequest(ModelState); + } + + _context.BrusherProfile.Add(brusherProfile); + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateException) + { + if (BrusherProfileExists(brusherProfile.UserId)) + { + return new HttpStatusCodeResult(StatusCodes.Status409Conflict); + } + else + { + throw; + } + } + + return CreatedAtRoute("GetBrusherProfile", new { id = brusherProfile.UserId }, brusherProfile); + } + + // DELETE: api/BursherProfilesApi/5 + [HttpDelete("{id}")] + public async Task DeleteBrusherProfile([FromRoute] string id) + { + if (!ModelState.IsValid) + { + return HttpBadRequest(ModelState); + } + + BrusherProfile brusherProfile = await _context.BrusherProfile.SingleAsync(m => m.UserId == id); + if (brusherProfile == null) + { + return HttpNotFound(); + } + + _context.BrusherProfile.Remove(brusherProfile); + await _context.SaveChangesAsync(); + + return Ok(brusherProfile); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + _context.Dispose(); + } + base.Dispose(disposing); + } + + private bool BrusherProfileExists(string id) + { + return _context.BrusherProfile.Count(e => e.UserId == id) > 0; + } + } +}