예제 #1
0
        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);
        }