示例#1
0
        public async Task <IActionResult> PostObjectTag([FromBody] ObjectTagRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!_context.Categories.Any(c => c.Id == request.Category))
            {
                return(BadRequest());
            }

            var objectTag = request.ToDataModel();

            _context.ObjectTags.Add(objectTag);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (ObjectTagExists(objectTag.Id))
                {
                    return(new StatusCodeResult(StatusCodes.Status409Conflict));
                }
                else
                {
                    throw;
                }
            }

            var response = await _context.IncludeObjectTagCategory().FirstOrDefaultAsync(c => c.Id == objectTag.Id);

            return(CreatedAtAction("GetObjectTag", new { id = objectTag.Id }, response.ToApiModel()));
        }
示例#2
0
        public async Task <IActionResult> PutObjectTag([FromRoute] string id, [FromBody] ObjectTagRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (id != request.Id)
            {
                return(BadRequest());
            }

            var objectTag = await _context.IncludeObjectTagCategory().FirstOrDefaultAsync(m => m.Id == id);

            if (objectTag == null)
            {
                return(NotFound());
            }

            if (!_context.Categories.Any(c => c.Id == request.Category))
            {
                return(BadRequest());
            }

            objectTag = request.ToDataModel(objectTag);

            _context.Entry(objectTag).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ObjectTagExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            var response = await _context.IncludeObjectTagCategory().FirstOrDefaultAsync(c => c.Id == objectTag.Id);

            return(Ok(response.ToApiModel()));
        }