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); } }