Ejemplo n.º 1
0
        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()));
        }