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))); } }
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); }