public HttpResponseMessage Create(PerformerView view) { if (this._context.performers.Any(p => p.emailAddress == view.emailAddress)) { return(Request.CreateErrorResponse(HttpStatusCode.Conflict, "Email already in use")); } else if (ModelState.IsValid) { try { if (!String.IsNullOrWhiteSpace(view.newPassword)) { view.password = Crypter.Blowfish.Crypt(view.password); } var original = view.convert(this._context); original.created = DateTime.UtcNow; this._context.performers.Add(original); this._context.SaveChanges(); view = new PerformerView(original); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, view); //response.Headers.Location = new Uri(Url.Link("Default", new { id = performer.performerID })); return(response); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } } else { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } }
public HttpResponseMessage Update(PerformerView view) { if (!String.IsNullOrWhiteSpace(view.emailAddress) && this._context.performers.Any(p => p.emailAddress == view.emailAddress && p.id != view.id)) { return(Request.CreateErrorResponse(HttpStatusCode.Conflict, "Email already in use")); } else if (ModelState.IsValid) { try { if (!String.IsNullOrWhiteSpace(view.newPassword)) { view.password = Crypter.Blowfish.Crypt(view.newPassword); } var original = this._context.performers.FirstOrDefault(p => p.id == view.id); original.updated = DateTime.UtcNow; AutoMapper.Mapper.CreateMap <Performer, Performer>(); AutoMapper.Mapper.Map <Performer, Performer>(view.convert(this._context), original); this._context.SaveChanges(); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, ex)); } HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, view); //response.Headers.Location = new Uri(Url.Link("Default", new { id = performer.performerID })); return(response); } else { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } }