コード例 #1
0
        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);
        }
コード例 #2
0
        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 }));
        }
コード例 #3
0
 public HttpResponseMessage SaveCountry(EditCountryData request)
 {
     return(WebClient.SecurePostAsJson <EditCountryData, HttpResponseMessage>(Token, _url + AdminApiRoutes.SaveCountry, request));
 }