コード例 #1
0
        public virtual async Task <IHttpActionResult> Put(int id, [FromBody] BasePutRequest <TEntity> request)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            TEntity entity;

            try
            {
                entity = (TEntity)request.ToEntity(this.Context);
            }
            catch (NotImplementedException)
            {
                entity = (TEntity)await request.ToEntityAsync(this.Context);
            }

            if (entity == null)
            {
                return(this.NotFound());
            }

            if (id != entity.Id)
            {
                return(this.BadRequest());
            }

            this.Repository.Update(entity);

            try
            {
                await this.Repository.CommitAsync();
            }
            catch (DbEntityValidationException)
            {
                this.Validate(entity);
                return(this.BadRequest(ModelState));
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!this.EntityExists(id))
                {
                    return(this.NotFound());
                }

                return(this.Conflict());
            }

            return(this.StatusCode(HttpStatusCode.NoContent));
        }
コード例 #2
0
 public override async Task <IHttpActionResult> Put(int id, [FromBody] BasePutRequest <Group> request)
 {
     return(await base.Put(id, request));
 }