public async Task <ReturnResult <int> > Create(CityPolygonView polygon) { var result = new ReturnResult <int>(); try { //TODO : add validation var cityPolygon = _mapper.Map <CityPolygon>(polygon); db.CityPolygon.Add(cityPolygon); await db.SaveChangesAsync(); result.Data = cityPolygon.Id; result.HttpStatusCode = System.Net.HttpStatusCode.OK; } catch (Exception ex) { _logger.LogError(ex.Message, ex); result.Errors.Add(ex.Message); result.HttpStatusCode = System.Net.HttpStatusCode.InternalServerError; } return(result); }
public async Task <ReturnResult <int> > Create(CityPolygonView polygon) { var result = new ReturnResult <int>(); try { var apiBaseUrl = _appSettings.ApiConfiguration.BaseUrl; var apiKey = _appSettings.ApiConfiguration.Key; using (var client = new HttpClient()) { client.BaseAddress = new Uri(apiBaseUrl); client.DefaultRequestHeaders.TryAddWithoutValidation("x-api-key", apiKey); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var json = JsonConvert.SerializeObject(polygon); var payload = new StringContent(json, Encoding.UTF8, "application/json"); var response = await client.PostAsync($"api/v1/Polygon", payload); var responseJson = await response.Content.ReadAsStringAsync(); result = JsonConvert.DeserializeObject <ReturnResult <int> >(responseJson); } } catch (Exception ex) { _logger.LogError(ex, ex.Message, null); result.Errors.Add(ex.Message); result.HttpStatusCode = System.Net.HttpStatusCode.InternalServerError; } return(result); }