Exemplo n.º 1
0
        public IActionResult Update(int id, [FromBody] EditRuleNameResource resource)
        {
            AppLogger.LogResourceRequest(nameof(Update), base.GetUsernameForRequest());

            try
            {
                var result = _ruleService.ValidateResource(resource);

                if (!result.IsValid)
                {
                    GetErrorsForModelState(result.ErrorMessages);
                }

                if (ModelState.IsValid)
                {
                    var rulename = _ruleService.FindById(id);

                    if (rulename == null)
                    {
                        return(NotFound(AppConfig.ResourceNotFoundById + id));
                    }

                    _ruleService.Update(id, resource);


                    return(Ok());
                }

                return(ValidationProblem());
            }
            catch (Exception ex)
            {
                return(BadRequestExceptionHandler(ex, nameof(Update)));
            }
        }
Exemplo n.º 2
0
        public IActionResult Create([FromBody] EditRuleNameResource resource)
        {
            AppLogger.LogResourceRequest(nameof(Create), base.GetUsernameForRequest());

            try
            {
                var result = _ruleService.ValidateResource(resource);

                if (!result.IsValid)
                {
                    GetErrorsForModelState(result.ErrorMessages);
                }

                if (ModelState.IsValid)
                {
                    _ruleService.Add(resource);

                    return(CreatedAtAction(nameof(Create), resource));
                }

                return(ValidationProblem());
            }
            catch (Exception ex)
            {
                return(BadRequestExceptionHandler(ex, nameof(Create)));
            }
        }
        public ValidationResult ValidateResource(EditRuleNameResource resource)
        {
            var result = new ValidationResult();

            if (resource != null)
            {
                var validator = new RuleNameValidator();
                var vr        = validator.Validate(resource);

                if (vr.IsValid)
                {
                    result.IsValid = true;
                    return(result);
                }


                if (vr.Errors.Any())
                {
                    foreach (var error in vr.Errors)
                    {
                        result.ErrorMessages.Add(error.PropertyName, error.ErrorMessage);
                    }
                }
            }

            return(result);
        }
        public void Put_WhenResourceInvalid_ReturnsWithValidationErrors()
        {
            // Get a list of bids so we can grab the correct id that is stored in
            // the (in)memory db
            var getResources = _client.AuthorizeRequest().GetAsync(APIROUTE).Result;

            getResources.EnsureSuccessStatusCode();

            var resourcesRaw = getResources.Content.ReadAsStringAsync().Result;
            var resources    = JsonConvert.DeserializeObject <IEnumerable <RuleNameResource> >(resourcesRaw);

            // Verify we have something to look up
            Assert.NotEmpty(resources);

            // The Test
            // Arrange - Grab first one
            var resource = resources.FirstOrDefault();

            var ruleName = new EditRuleNameResource
            {
                Description = "blaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah",
                Name        = "Blah",
                Template    = "Yo!"
            };

            // Act
            var response = _client.AuthorizeRequest().PutAsync(APIROUTE + resource.Id, ClientHelper.EncodeContent(ruleName)).Result;
            var json     = response.Content.ReadAsStringAsync().Result;

            Assert.Equal(System.Net.HttpStatusCode.BadRequest, response.StatusCode);
            Assert.Contains("validation errors", json);
        }
        public void Update(int id, EditRuleNameResource resource)
        {
            var rulename = _ruleRepo.FindById(id);

            if (resource != null && rulename != null)
            {
                _ruleRepo.Update(id, _mapper.Map(resource, rulename));
                _ruleRepo.SaveChanges();
            }
        }
        public RuleNameResource Add(EditRuleNameResource resource)
        {
            if (resource == null)
            {
                throw new ArgumentNullException();
            }

            var rulename = _mapper.Map <RuleName>(resource);

            _ruleRepo.Add(rulename);
            _ruleRepo.SaveChanges();

            return(_mapper.Map <RuleNameResource>(rulename));
        }
        public void Put_WhenNull_ReturnsNotFound()
        {
            var ruleName = new EditRuleNameResource
            {
                Description = "blah",
                Name        = "Blah",
                Template    = "Yo!"
            };

            // Act
            var response = _client.AuthorizeRequest().PutAsync(APIROUTE + 99999, ClientHelper.EncodeContent(ruleName)).Result;

            // Assert
            Assert.Equal(System.Net.HttpStatusCode.NotFound, response.StatusCode);
        }
        public void Post_WhenResourceIsInvalied_ReturnsBadRequestWithValidationErrors()
        {
            var ruleName = new EditRuleNameResource
            {
                Description = "blah",
                Name        = "Blahasd asd asaaaaaaaaaaaa dddddddddddddddddddddddddddddddddd",
                Template    = "Yo!"
            };

            var response = _client.AuthorizeRequest().PostAsync(APIROUTE, ClientHelper.EncodeContent(ruleName)).Result;
            var json     = response.Content.ReadAsStringAsync().Result;

            Assert.Equal(System.Net.HttpStatusCode.BadRequest, response.StatusCode);
            Assert.Contains("validation errors", json);
        }
        public void Post_ReturnsOk_WithNewRuleNameResource()
        {
            var ruleName = new EditRuleNameResource
            {
                Description = "blah",
                Name        = "Blah",
                Template    = "Yo!"
            };

            var response = _client.AuthorizeRequest().PostAsync(APIROUTE, ClientHelper.EncodeContent(ruleName)).Result;

            response.EnsureSuccessStatusCode();

            var json   = response.Content.ReadAsStringAsync().Result;
            var result = JsonConvert.DeserializeObject <RuleNameResource>(json);

            Assert.NotNull(result);
            Assert.IsType <RuleNameResource>(result);
        }