public async Task <JsonResult> Post(string tripName, [FromBody] StopViewModel vm) { try { if (ModelState.IsValid) { // Map to the entity var newStop = Mapper.Map <Stop>(vm); // Looking up Geocoordinates var coordResult = await _coordService.Lookup(newStop.Name); if (!coordResult.Success) { Response.StatusCode = (int)HttpStatusCode.BadRequest; Json(coordResult.Message); } newStop.Latitude = coordResult.Latitude; newStop.Longitude = coordResult.Longitude; // Save to the database. _repository.AddStop(tripName, User.Identity.Name, newStop); if (_repository.SaveAll()) { Response.StatusCode = (int)HttpStatusCode.Created; return(Json(Mapper.Map <StopViewModel>(newStop))); } } } catch (Exception ex) { _logger.LogError("Failed to save new stop", ex); Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json("Failed to save new stop")); } Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json("Validation failed on new stop")); }
public async Task <JsonResult> Post(string tripName, [FromBody] StopViewModel vm) { try { if (ModelState.IsValid) { var newStop = Mapper.Map <Stop>(vm); // look up Geo Coordinates var result = await _coordService.Lookup(newStop.Name); if (!result.Success) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(result.Message)); } newStop.Longitude = result.Longitude; newStop.Latitude = result.Latitude; // Save to DB _logger.LogInformation("Attempting to Save New Stop to DB"); _repository.AddStop(tripName, newStop, User.Identity.Name); if (_repository.SaveAll()) { Response.StatusCode = (int)HttpStatusCode.Created; return(Json(Mapper.Map <StopViewModel>(newStop))); } } Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(new { Message = "failed", ModelState = ModelState })); } catch (Exception e) { _logger.LogError("Failed to Save new Stop", e); Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(new { ExceptionMsg = e.Message })); } }
public async Task <JsonResult> Post(string tripName, [FromBody] StopViewModel vm) { dynamic model = null; try { if (ModelState.IsValid) { //Map viewmodel to entity var newStop = Mapper.Map <Stop>(vm); //Looking up Geocoordinates var coordResult = await _coordService.Lookup(newStop.Name); if (!coordResult.Success) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(coordResult.Message)); } newStop.Longitude = coordResult.Longitude; newStop.Latitude = coordResult.Latitude; model = newStop; //Save to the database _repository.AddStop(tripName, User.Identity.Name, newStop); if (_repository.SaveAll()) { Response.StatusCode = (int)HttpStatusCode.Created; return(Json(Mapper.Map <StopViewModel>(newStop))); } } } catch (Exception ex) { _logger.LogError("Failed to save new stop", ex); Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(new { Message = "failed to save new stop", Exception = ex.Message, cEx = ex, model = model, bingKey = Startup.Configuration["AppSettings:BingKey"] })); } Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(new { Message = "Validation failed on new stop", ModelState = ModelState })); }
public async Task <JsonResult> Post(string tripName, [FromBody] StopAPIModel stop) { try { if (ModelState.IsValid) { var newStop = Mapper.Map <Stop>(stop); //Compute latitude and longitude var result = await _coordService.Lookup(newStop.Name); if (!result.Success) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(result.Message)); } else { newStop.Longitude = result.Longitude; newStop.Latitude = result.Latitude; } _repository.AddStop(tripName, newStop, User.Identity.Name); if (_repository.SaveAll()) { Response.StatusCode = (int)HttpStatusCode.Created; return(Json(Mapper.Map <StopAPIModel>(newStop))); } } } catch (Exception) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(null)); } return(null); }