Example #1
0
        //Loop thorugh and copy values for all non null properties to the ITransformer object
        void UpdateMatchingProperties(TransformerUpdateViewModel model, Transformer transformer)
        {
            var modelProperties = model.GetType().GetProperties();

            foreach (var property in modelProperties)
            {
                var valueToCopy = property.GetValue(model);

                if (valueToCopy != null)
                {
                    var propertyToUpdate = transformer.GetType().GetProperty(property.Name);
                    propertyToUpdate.SetValue(transformer, valueToCopy);
                }
            }
        }
        public async Task <IActionResult> UpdateTransformer(int transformerid, [FromBody] TransformerUpdateViewModel updatedTransformerViewModel)
        {
            if (ModelState.IsValid)
            {
                var transformerObject = await GetTransformer(transformerid);

                var transformer = GetTransformerObjectFromActionResult(transformerObject);

                if (transformer != null)
                {
                    var updatedTransformerObject =
                        _factory.UpdateTransformer(updatedTransformerViewModel, transformer as Transformer);
                    var result = await _datastore.UpdateTransformerAsync(transformerid, updatedTransformerObject);

                    return(Ok(result));
                }
            }

            return(BadRequest(Responses.INVALID_TRANSFORMER_ID));
        }
Example #3
0
        public async void UpdateOperation_ValidID_Success()
        {
            SetupMockTransformerLookup(1, "Grimlock", 7);
            var transformerUpdateViewModel = new TransformerUpdateViewModel
            {
                Name = "Grimlock1",
                Rank = 8
            };

            _mockDataStore.Setup(x => x.UpdateTransformerAsync(1, It.IsAny <ITransformer>()))
            .ReturnsAsync(new Transformer {
                Name = "Grimlock1", Rank = 8, ID = 1
            });

            var result = await _sut.UpdateTransformer(1, transformerUpdateViewModel);

            Assert.IsType <OkObjectResult>(result);
            Assert.IsAssignableFrom <ITransformer>(((OkObjectResult)result).Value);
            Assert.Equal(1, ((ITransformer)((OkObjectResult)result).Value).ID);
            Assert.Equal("Grimlock1", ((ITransformer)((OkObjectResult)result).Value).Name);
            Assert.Equal(8, ((ITransformer)((OkObjectResult)result).Value).Rank);
        }
Example #4
0
 //Update the ITransformer object based on partial updates, simulating a PATCH operation.
 public ITransformer UpdateTransformer(TransformerUpdateViewModel model, Transformer transformer)
 {
     UpdateMatchingProperties(model, transformer);
     return(transformer);
 }