public void ThenCountryDataIsSuccessfullySaved() { var data = new EditCountryData { Code = TestDataGenerator.GetRandomString(3), Name = TestDataGenerator.GetRandomString(), }; var result = AdminApiProxy.SaveCountry(data); result.Should().NotBeNull(); result.StatusCode.ShouldBeEquivalentTo(HttpStatusCode.OK); }
public IHttpActionResult Save(EditCountryData data) { var oldCode = data.OldCode; var newCountry = string.IsNullOrEmpty(oldCode); VerifyPermission(newCountry ? Permissions.Create : Permissions.Update, Modules.CountryManager); if (!newCountry) { if (_queries.GetCountry(oldCode) == null) { ModelState.AddModelError("Id", "{\"text\": \"app:common.invalidId\"}"); } } if (_queries.GetCountries().Any(c => c.Name == data.Name && c.Code != oldCode)) { ModelState.AddModelError("Name", "{\"text\": \"app:common.nameUnique\"}"); } if (_queries.GetCountries().Any(c => c.Code == data.Code && c.Code != oldCode)) { ModelState.AddModelError("Code", "{\"text\": \"app:common.codeUnique\"}"); } if (!ModelState.IsValid) { var fields = ModelState.Where(p => p.Value.Errors.Count > 0) .Select(x => new { Name = ToCamelCase(x.Key), Errors = x.Value.Errors.Select(e => e.ErrorMessage) }); return(Ok(new { Result = "failed", Fields = fields })); } if (newCountry) { _commands.CreateCountry(data.Code, data.Name); } else { _commands.UpdateCountry(oldCode, data.Name); } var messageName = newCountry ? "app:country.created" : "app:country.updated"; return(Ok(new { Result = "success", Data = messageName })); }
public HttpResponseMessage SaveCountry(EditCountryData request) { return(WebClient.SecurePostAsJson <EditCountryData, HttpResponseMessage>(Token, _url + AdminApiRoutes.SaveCountry, request)); }