コード例 #1
0
        public async Task <IHttpActionResult> Post(ItemModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var itemsWithExtId = await Dao.GetItemsByExternalId(model.ExternalId);

            if (itemsWithExtId.Count() != 0)
            {
                return(BadRequest("Item with that ExternalID already exists"));
            }

            var item  = ItemMapper.ModelToEntity(model);
            var newId = await Dao.CreateItem(item);

            if (newId == 0)
            {
                return(InternalServerError());
            }

            var newItem = await Dao.GetItemById(newId);

            return(CreatedAtRoute("GetItemById", new { id = newId }, ItemMapper.EntityToModel(newItem)));
        }
コード例 #2
0
        public async Task <IHttpActionResult> Put(int id, ItemModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (id == 0)
            {
                return(BadRequest("Id needed"));
            }

            var itemToUpdate = await Dao.GetItemById(id);

            if (itemToUpdate is null)
            {
                return(NotFound());
            }

            if (model.ExternalId != itemToUpdate.ExternalId)
            {
                var itemsWithExtId = await Dao.GetItemsByExternalId(model.ExternalId);

                if (itemsWithExtId.Count() != 0)
                {
                    return(BadRequest("Item with that ExternalID already exists"));
                }
            }
            var item    = ItemMapper.ModelToEntity(model);
            var success = await Dao.UpdateItem(id, item);

            if (!success)
            {
                return(InternalServerError());
            }

            var result = await Dao.GetItemById(id);

            return(Ok(result));
        }