Пример #1
0
    private bool storeStations(string strJson)
    {
        if (strJson == "")
        {
            return(false);
        }
        var data = JSON.Parse(strJson);

        if (data == null)
        {
            return(false);
        }

        for (int i = 0; i < data["metadata"]["stations"].Count; i++)
        {
            stations station = new stations();
            station.id   = data["metadata"]["stations"][i]["id"].Value;
            station.name = data["metadata"]["stations"][i]["name"].Value;
            station.lat  = data["metadata"]["stations"][i]["location"]["latitude"].AsFloat;
            station.lng  = data["metadata"]["stations"][i]["location"]["longitude"].AsFloat;

            if (!listStations.Exists(item => item.id == Convert.ToString(station.id)))
            {
                listStations.Add(station);
            }
        }

        Debug.Log("total station - " + listStations.Count);

        return(true);
    }
Пример #2
0
    private bool loadData(string strJson)
    {
        //Debug.Log("i got this json loadData @ " + DateTime.Now + " - " + strJson);
        if (strJson == "")
        {
            return(false);
        }
        var data = JSON.Parse(strJson);

        if (data == null)
        {
            return(false);
        }

        if (listDataPoints.Count != 0)
        {
            Dictionary <string, object> lastPt = listDataPoints.Last();
            string strDtLast = (string)lastPt[Headers.Timestamp];
            if (strDtLast.Equals(data["items"][0]["timestamp"].Value))
            {
                return(false);
            }
        }

        for (int i = 0; i < data["items"][0]["readings"].Count; i++)
        {
            var entry = new Dictionary <string, object>();

            entry[Headers.Id] = data["items"][0]["readings"][i]["station_id"].Value;

            if (!listStations.Exists(item => item.id == (string)entry[Headers.Id]))
            {
                Debug.Log(entry[Headers.Id] + " doesnt match");
                storeStations(strJson);
            }

            stations station = listStations.Find(item => item.id == (string)entry[Headers.Id]);
            entry[Headers.Name]      = station.name;
            entry[Headers.Lat]       = station.lat;
            entry[Headers.Lng]       = station.lng;
            entry[Headers.Rain]      = data["items"][0]["readings"][i]["value"].AsFloat;
            entry[Headers.Timestamp] = data["items"][0]["timestamp"].Value;

            //limit growing of the list
            if (listDataPoints.Count >= MAX_LIST)
            {
                listDataPoints.RemoveAt(0);
            }

            listDataPoints.Add(entry);
        }

        return(true);
    }
Пример #3
0
        async Task UpdateCitidals(CancellationToken stoppingToken)
        {
            using var sp             = _service.CreateScope();
            await using MarketDB db1 = IsTQ ? sp.ServiceProvider.GetService <TQMarketDB>() : sp.ServiceProvider.GetService <CNMarketDB>();


            long[] citidals;
            try
            {
                citidals = await this.client.GetAllCitidalIds(stoppingToken);
            }
            catch (Exception e)
            {
                _logger.LogInformation(e, $"更新建筑物失败 {IsTQ} " + e);
                return;
            }

            var tasks       = citidals.Select(p => new { p, task = this.client.GetCitidal(p) }).ToList();
            var oldstations = await db1.stations.Where(p => p.stationid > int.MaxValue).ToListAsync();

            try
            {
                await Task.WhenAll(tasks.Select(p => p.task));
            }
            catch (Exception e)
            {
                _logger.LogInformation(e, $"更新建筑物失败 {IsTQ} " + e);
                return;
            }

            foreach (var task in tasks.Where(p => p.task.Result != null))
            {
                var citidalinfo = task.task.Result;
                var model       = oldstations.FirstOrDefault(p => p.stationid == task.p);
                if (model == null)
                {
                    model           = new stations();
                    model.stationid = task.p;
                    db1.stations.Add(model);
                }

                var name = citidalinfo.Name.Split(" - ")[0];
                model.systemid = citidalinfo.Solar_system_id;
                model.corpid   = citidalinfo.Owner_id;
                // var mod = await db1.evetypes.FirstOrDefaultAsync(p => p.typeID == citidalinfo.Type_id);
                // var typename = mod?.typeName ?? "玩家建筑物";
                model.stationname = citidalinfo.Name;
                model.typeid      = citidalinfo.Type_id;
            }
            db1.RemoveRange(db1.stations.Where(p => p.stationid > int.MaxValue).Where(p => !citidals.Contains(p.stationid)));
            await db1.SaveChangesAsync(stoppingToken);
        }
        // PUT: api/Station/5
        public IHttpActionResult Put(int id, [FromBody] dynamic value)
        {
            using (testeftEntities db = new testeftEntities())
            {
                stations s = db.stations.Find(id);

                s.is_active = value.is_active;

                db.SaveChanges();

                return(Ok());
            }
        }
Пример #5
0
    private List <Dictionary <string, object> > loadPastData(string strJsonSpeed, string strJsonDir)
    {
        List <Dictionary <string, object> > listPastData = new List <Dictionary <string, object> >();

        //Debug.Log(strJsonSpeed + " \n " + strJsonDir + "\n@" + DateTime.Now);

        if (strJsonSpeed == "" || strJsonDir == "")
        {
            return(listPastData);
        }

        var dataSpeed = JSON.Parse(strJsonSpeed);
        var dataDir   = JSON.Parse(strJsonDir);

        if (dataSpeed == null || dataDir == null)
        {
            return(listPastData);
        }

        for (int i = 0; i < dataSpeed["items"][0]["readings"].Count; i++)
        {
            var entry = new Dictionary <string, object>();

            if (!Convert.ToString(dataSpeed["items"][0]["readings"][i]["station_id"].Value).Equals(Convert.ToString(dataDir["items"][0]["readings"][i]["station_id"].Value)))
            {
                Debug.LogError("speed and dir data not in sync - " + dataSpeed["items"][0]["readings"][i]["station_id"].Value + " -vs- " + dataDir["items"][0]["readings"][i]["station_id"].Value);
                continue;
            }

            entry[Headers.Id] = dataSpeed["items"][0]["readings"][i]["station_id"].Value;

            if (!listStations.Exists(item => item.id == (string)entry[Headers.Id]))
            {
                Debug.Log(entry[Headers.Id] + " doesnt match");
                storeStations(strJsonSpeed);
            }

            stations station = listStations.Find(item => item.id == (string)entry[Headers.Id]);
            entry[Headers.Name]      = station.name;
            entry[Headers.Lat]       = station.lat;
            entry[Headers.Lng]       = station.lng;
            entry[Headers.Speed]     = dataSpeed["items"][0]["readings"][i]["value"].AsFloat;
            entry[Headers.Dir]       = dataDir["items"][0]["readings"][i]["value"].AsFloat;
            entry[Headers.Timestamp] = dataSpeed["items"][0]["timestamp"].Value;

            listPastData.Add(entry);
        }

        return(listPastData);
    }
        // POST: api/Station
        public IHttpActionResult Post([FromBody] dynamic value)
        {
            using (testeftEntities db = new testeftEntities())
            {
                stations s = new stations();

                s.cnpj = value.cnpj;

                s.company_name = value.company_name;

                s.is_active = true;

                db.stations.Add(s);

                db.SaveChanges();

                return(Ok(s.id));
            }
        }
Пример #7
0
    private List <Dictionary <string, object> > loadPastData(string strJson)
    {
        List <Dictionary <string, object> > listPastData = new List <Dictionary <string, object> >();

        //Debug.Log("i got this json loadPastData @ " + DateTime.Now + " - " + strJson );
        if (strJson == "")
        {
            return(listPastData);
        }

        var data = JSON.Parse(strJson);

        if (data == null)
        {
            return(listPastData);
        }

        for (int i = 0; i < data["items"][0]["readings"].Count; i++)
        {
            var entry = new Dictionary <string, object>();

            entry[Headers.Id] = data["items"][0]["readings"][i]["station_id"].Value;

            if (!listStations.Exists(item => item.id == (string)entry[Headers.Id]))
            {
                Debug.Log(entry[Headers.Id] + " doesnt match");
                storeStations(strJson);
            }

            stations station = listStations.Find(item => item.id == (string)entry[Headers.Id]);
            entry[Headers.Name]      = station.name;
            entry[Headers.Lat]       = station.lat;
            entry[Headers.Lng]       = station.lng;
            entry[Headers.Rain]      = data["items"][0]["readings"][i]["value"].AsFloat;
            entry[Headers.Timestamp] = data["items"][0]["timestamp"].Value;

            listPastData.Add(entry);
        }

        return(listPastData);
    }
Пример #8
0
 BuildHtml(stations, transportLines, Singleton <SimulationManager> .instance.m_metaData.m_CityName, Singleton <SimulationManager> .instance.m_metaData.m_gameInstanceIdentifier, Singleton <SimulationManager> .instance.m_currentGameTime);
Пример #9
0
    private bool loadData(string strJsonSpeed, string strJsonDir)
    {
        if (strJsonSpeed == "" || strJsonDir == "")
        {
            return(false);
        }

        var dataSpeed = JSON.Parse(strJsonSpeed);
        var dataDir   = JSON.Parse(strJsonDir);

        if (dataSpeed == null || dataDir == null)
        {
            return(false);
        }

        if (listDataPoints.Count != 0)
        {
            Dictionary <string, object> lastPt = listDataPoints.Last();
            string strDtLast = (string)lastPt[Headers.Timestamp];
            if (strDtLast.Equals(dataSpeed["items"][0]["timestamp"].Value))
            {
                return(false);
            }
        }

        for (int i = 0; i < dataSpeed["items"][0]["readings"].Count; i++)
        {
            var entry = new Dictionary <string, object>();

            if (!Convert.ToString(dataSpeed["items"][0]["readings"][i]["station_id"].Value).Equals(Convert.ToString(dataDir["items"][0]["readings"][i]["station_id"].Value)))
            {
                Debug.LogError("speed and dir data not in sync - " + dataSpeed["items"][0]["readings"][i]["station_id"].Value + " -vs- " + dataDir["items"][0]["readings"][i]["station_id"].Value);
                continue;
            }

            entry[Headers.Id] = dataSpeed["items"][0]["readings"][i]["station_id"].Value;

            if (!listStations.Exists(item => item.id == (string)entry[Headers.Id]))
            {
                Debug.Log(entry[Headers.Id] + " doesnt match");
                storeStations(strJsonSpeed);
            }

            stations station = listStations.Find(item => item.id == (string)entry[Headers.Id]);
            entry[Headers.Name]      = station.name;
            entry[Headers.Lat]       = station.lat;
            entry[Headers.Lng]       = station.lng;
            entry[Headers.Speed]     = dataSpeed["items"][0]["readings"][i]["value"].AsFloat;
            entry[Headers.Dir]       = dataDir["items"][0]["readings"][i]["value"].AsFloat;
            entry[Headers.Timestamp] = dataSpeed["items"][0]["timestamp"].Value;

            //limit growing of the list
            if (listDataPoints.Count >= MAX_LIST)
            {
                listDataPoints.RemoveAt(0);
            }

            listDataPoints.Add(entry);
        }

        return(true);
    }