Пример #1
0
        // PUT: api/Trains
        public HttpResponseMessage Put()
        {
            // Достать из зарпоса контент
            var content = Request.Content;
            // Разделить контент на 2 части
            var contentStrings = content.ReadAsStringAsync().Result.Split('=');

            // Создать модель данных
            TrainDataEntity model = new TrainDataEntity();
            var             newId = -1;
            ushort          serverCrc;

            // Попробовать разобрать контент и преобразовать в объект
            try
            {
                model = ParameterParser.GetDataModelFromInputString(
                    contentStrings[0].Substring(4),
                    contentStrings[1], out serverCrc);

                // Если CRC совпадает - сохранить данные в базу
                if (serverCrc == model.CrcData)
                {
                    newId = _repository.Save(model);
                }
            }
            catch (Exception exception)
            {
                serverCrc = 0;
            }

            // Отправить ответ источнику запроса
            var response = Request.CreateResponse(HttpStatusCode.OK, new ResponseModel
            {
                Message = $"Is successful received: {newId != -1}; computed CRC: {serverCrc}; actual CRC: {model.CrcData}; new Id is: {newId}"
            });

            return(response);
        }