public async Task <ActionResult> Create(string alpha2Code, CountrySubdivisionRequestModel model) { if (!ModelState.IsValid) { return(BadRequest(new { Errors = ModelState.Values })); } Country country = _context.Countries .Where(x => x.Alpha2Code == alpha2Code).FirstOrDefault(); if (country == null) { return(NotFound(new { Errors = new[] { "Country not found" } })); } CountrySubdivision countrySubdivision = new CountrySubdivision { Name = model.Name, Code = model.Code, LocalizedName = model.LocalizedName, CountryId = country.Id }; _context.CountrySubdivisions.Add(countrySubdivision); try { _context.SaveChanges(); return(Created(Url.Action("Filter", "CountrySubdivision", new { subdivisionCode = countrySubdivision.Code }), new { Data = countrySubdivision, Link = new { Self = Url.Action("Filter", "CountrySubdivision", new { subdivisionCode = countrySubdivision.Code }) } })); } catch (Exception ex) { return(Ok(new { Errors = "Error encountered, please try again later", Meta = new { StackTrace = ex.Message } })); } }
public async Task <ActionResult> Update(CountrySubdivisionRequestModel model) { if (!ModelState.IsValid) { return(BadRequest(new { Errors = ModelState.Values })); } if (model.Id == 0) { return(BadRequest(new { Errors = new[] { "Country Subdivision Id must be provided" } })); } CountrySubdivision countrySubdivisions = _context.CountrySubdivisions.Find(model.Id); if (countrySubdivisions == null) { return(NotFound(new { Errors = new[] { "Country Subdivision not found" } })); } countrySubdivisions.Name = model.Name; countrySubdivisions.Code = model.Code; countrySubdivisions.LocalizedName = model.LocalizedName; _context.CountrySubdivisions.Update(countrySubdivisions); try { _context.SaveChanges(); return(Accepted(Url.Action("Filter", "CountrySubdivision", new { subdivisionCode = countrySubdivisions.Code }), new { Data = countrySubdivisions, Link = new { Self = Url.Action("Filter", "CountrySubdivision", new { subdivisionCode = countrySubdivisions.Code }) } })); } catch (Exception ex) { return(Ok(new { Errors = "Error encountered, please try again later", Meta = new { StackTrace = ex.Message } })); } }