You need to sign in or sign up before continuing.
LevelsRiversController.cs 4.06 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Newtonsoft.Json.Linq;
using ControlPanel.Models;
using System.Runtime.Serialization;
using ControlPanel.LogicLayers;
using System.IO;


namespace ControlPanel.Controllers
{
    public class LevelsRiversController : ApiController
    {
        // POST api/default1
        public string Post(JObject data)
        {
            string error = "Ok";
            System.IO.StreamWriter StreamWriter = new System.IO.StreamWriter(System.Web.HttpContext.Current.Server.MapPath("~/Output/data.txt"),true);
         
            try
            {
               
                var lst = data["data"];

                foreach (var p in lst)
                {
                    dynamic json = JValue.Parse(p.ToString());

                    int id_agk = json.id_agk;
                  
                    if (id_agk > 1000)
                        id_agk = id_agk - 1000;

            
                     
                     
                    bool repair = false;  // в норме
                    bool opendoor = false; // дверь закрыта 


                    // если поля существует , то присвоим значение из JSON объека
                    try
                    {
                        int r = json.repair;
                        int f = json.opendoor;
                        if (r == 1) 
                            repair = true;

                        if (f == 1)
                            opendoor = true;


                    }
                    catch (Exception)
                    {
                    }

                    MsgLevelRiver mslevelriver = new MsgLevelRiver
                    {
                           id_agk=id_agk,
                           datetimedevice = json.datetimedevice,
                           datetimeveracity = json.datetimeveracity,
                           datetimeserver = json.datetimeserver,
                           latitude = json.latitude,
                           longitude = json.longitude,
                           coordveracity = json.coordveracity,
                           installplace = json.installplace,
                           levelbsv = json.levelbsv,
                           levelpointsuspen = json.levelpointsuspen,
                           levelzeropost = json.levelzeropost,
                           causeevent = json.causeevent,
                           repair = repair,
                           opendoor = opendoor
                    };

                    try
                    {
                        string river = json.installplace;

                        Agk agk = new Agk();

                           agk.number = id_agk;
                           agk.river = river;
                           agk.latitude = mslevelriver.latitude;
                           agk.longitude = mslevelriver.longitude;
                     
                          LogicAgk.instance.Add(agk);

                        //добавляем/ обновляем таблицу оповещаний // 
                        //Notification objnotification = new Notification { number = agk.number, river = river, notification = true };
                        //LogicNotification.instance.Add(objnotification);
                    }
                    catch (Exception ex)
                    {
                        StreamWriter.WriteLine(ex.Message);

                    }
                    LogicLevelsRivers.instance.InsLevelsRivers(mslevelriver);          
               }
          
            }
            catch (Exception ex)
            {
                StreamWriter.WriteLine(ex.Message);

            }

      
            StreamWriter.Flush();
            StreamWriter.Close();


            return error;

        }

        // PUT api/default1/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/default1/5
        public void Delete(int id)
        {
        }
    }
}