public async Task <IHttpActionResult> PostPosition(HttpRequestMessage request) { Stream streamContent = await request.Content.ReadAsStreamAsync(); streamContent.Seek(0, SeekOrigin.Begin); ApiResponse <bool> response = new ApiResponse <bool>(); try { GeographicalPosition position; using (StreamReader requestReader = new StreamReader(streamContent, Encoding.GetEncoding("ISO-8859-1"))) { position = JsonConvert.DeserializeObject <GeographicalPosition>(requestReader.ReadToEnd()); position.RegistrationDate = Kit.GetDateTime(); position.Id = Guid.NewGuid(); } using (LogicEngine logicEngine = new LogicEngine(DataEngineKind.Storage)) { await logicEngine.SetCurrentPosition(position); } using (LogicEngine logicEngine = new LogicEngine(DataEngineKind.Sql)) { await logicEngine.SetPositionHistory(position); } } catch (PlatformException ex) { response.Code = -1; response.Message = ex.Message; EventManager.WriteEvent(ex); } catch (LogicException ex) { response.Code = 100; response.Message = ex.Message; EventManager.WriteEvent(ex); } catch (Exception ex) { response.Code = -200; response.Message = ex.Message; EventManager.WriteEvent(ex); } return(Json(response, new JsonSerializerSettings())); }