public async Task <IHttpActionResult> PutMessage(string id, EditMessageBindingModel message) { if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var userId = this.User.Identity.GetUserId(); if (userId == null) { return(this.BadRequest("Invalid session token.")); } var existingMessasge = await this.Data.Messages.All() .FirstOrDefaultAsync(m => m.Id == new Guid(id)); if (existingMessasge == null) { return(this.BadRequest("Message id is invalid.")); } if (existingMessasge.FromUserId != userId) { return(this.BadRequest("You cant edit this message. You are not the author.")); } existingMessasge.Title = message.Title; existingMessasge.Content = message.Content; try { var rowsAffected = await this.Data.SaveChangesAsync(); if (rowsAffected != 1) { return(this.BadRequest("Something went wrong")); } } catch (DbUpdateConcurrencyException) { return(this.BadRequest("Something went wrong. Try again.")); } return(this.StatusCode(HttpStatusCode.NoContent)); }
public async Task<IHttpActionResult> PutMessage(string id, EditMessageBindingModel message) { if (!this.ModelState.IsValid) { return this.BadRequest(this.ModelState); } var userId = this.User.Identity.GetUserId(); if (userId == null) { return this.BadRequest("Invalid session token."); } var existingMessasge = await this.Data.Messages.All() .FirstOrDefaultAsync(m => m.Id == new Guid(id)); if (existingMessasge == null) { return this.BadRequest("Message id is invalid."); } if (existingMessasge.FromUserId != userId) { return this.BadRequest("You cant edit this message. You are not the author."); } existingMessasge.Title = message.Title; existingMessasge.Content = message.Content; try { var rowsAffected = await this.Data.SaveChangesAsync(); if (rowsAffected != 1) { return this.BadRequest("Something went wrong"); } } catch (DbUpdateConcurrencyException) { return this.BadRequest("Something went wrong. Try again."); } return this.StatusCode(HttpStatusCode.NoContent); }