Exemplo n.º 1
0
        private string BuildApijson(string r)
        {
            if (_apiJson != null)
                return _apiJson;

            string resp = File.ReadAllText(r + @"api\api.json");
            string template =
                "{{\"text\":\"{0}\",\"typeID\":{1},\"sourceTypeID\":{2}}},";

            var ldev =
                Conf.DeviceList.Where(p => p.ObjectTypeID == 2 && !p.ExcludeFromOnline).OrderBy(p => p.Name);
            string s = ldev.Aggregate("",
                (current, source) => current + String.Format(template, source.Name, source.ObjectTypeID, source.SourceTypeID));

            resp = resp.Replace("SOURCETYPES", s.Trim(','));

            ldev = Conf.DeviceList.Where(p => p.ObjectTypeID == 1 && !p.ExcludeFromOnline).OrderBy(p => p.Name);
            s = ldev.Aggregate("",
                (current, source) => current + String.Format(template, source.Name, source.ObjectTypeID, source.SourceTypeID));

            resp = resp.Replace("AUDIOTYPES", s.Trim(','));

            template = "{{\"text\":\"{0}\",\"value\":\"{1},{2}\"}},";

            var ptzList = new List<Helper.ListItem>
                                  {
                                      new Helper.ListItem(":: NONE", "-6"),
                                      new Helper.ListItem(":: DIGITAL", "-1"),
                                      new Helper.ListItem(":: IAM-CONTROL", "-2"),
                                      new Helper.ListItem(":: ONVIF", "-5"),
                                      new Helper.ListItem(":: PELCO-P", "-3"),
                                      new Helper.ListItem(":: PELCO-D", "-4")
                                  };

            foreach (PTZSettings2Camera ptz in MainForm.PTZs)
            {
                int j = 0;
                foreach (var m in ptz.Makes)
                {
                    string ttl = (m.Name + " " + m.Model).Trim();
                    var ptze = new Helper.ListItem(ttl.JsonSafe(), ptz.id.ToString(CultureInfo.InvariantCulture), j);

                    if (!ptzList.Contains(ptze))
                        ptzList.Add(ptze);
                    j++;
                }
            }
            ptzList = ptzList.OrderBy(p => p.Name).ToList();

            string ptzm = ptzList.Aggregate("", (current, ptz) => current + string.Format(template, ptz.Name, ptz.Value, ptz.Index));

            _apiJson = resp.Replace("PTZMODELS", ptzm.Trim(','));
            return _apiJson;
        }
Exemplo n.º 2
0
        //private string _apiJson;
        string BuildApijson(string r, string lc)
        {
            string resp = File.ReadAllText(r + @"api\api.json");
            string template =
                "{{\"text\":\"{0}\",\"typeID\":{1},\"sourceTypeID\":{2}, \"noTranslate\":true}},";

            var ldev =
                Conf.DeviceList.Where(p => p.ObjectTypeID == 2 && !p.ExcludeFromOnline).OrderBy(p => p.Name);
            string s = ldev.Aggregate("",
                (current, source) => current + string.Format(template, LocRm.GetString(source.Name, lc), source.ObjectTypeID, source.SourceTypeID));

            resp = resp.Replace("SOURCETYPES", s.Trim(','));

            ldev = Conf.DeviceList.Where(p => p.ObjectTypeID == 1 && !p.ExcludeFromOnline).OrderBy(p => p.Name);
            s = ldev.Aggregate("",
                (current, source) => current + string.Format(template, LocRm.GetString(source.Name, lc), source.ObjectTypeID, source.SourceTypeID));

            resp = resp.Replace("AUDIOTYPES", s.Trim(','));

            template = "{{\"text\":\"{0}\",\"value\":\"{1},{2}\", \"noTranslate\":true}},";

            var ptzList = new List<Helper.ListItem>
                                  {
                                      new Helper.ListItem(":: NONE", "-6"),
                                      new Helper.ListItem(":: DIGITAL", "-1"),
                                      new Helper.ListItem(":: IAM-CONTROL", "-2"),
                                      new Helper.ListItem(":: ONVIF", "-5"),
                                      new Helper.ListItem(":: PELCO-P", "-3"),
                                      new Helper.ListItem(":: PELCO-D", "-4")
                                  };

            foreach (PTZSettings2Camera ptz in MainForm.PTZs)
            {
                int j = 0;
                foreach (var m in ptz.Makes)
                {
                    string ttl = (m.Name + " " + m.Model).Trim();
                    var ptze = new Helper.ListItem(ttl.JsonSafe(), ptz.id.ToString(CultureInfo.InvariantCulture), j);

                    if (!ptzList.Contains(ptze))
                        ptzList.Add(ptze);
                    j++;
                }
            }
            ptzList = ptzList.OrderBy(p => p.Name).ToList();

            string ptzm = ptzList.Aggregate("", (current, ptz) => current + string.Format(template, ptz.Name, ptz.Value, ptz.Index));

            var apiJson = resp.Replace("PTZMODELS", ptzm.Trim(','));

            try
            {
                dynamic d = PopulateResponse(apiJson, null, lc);
                return JsonConvert.SerializeObject(d);
            }
            catch (Exception ex)
            {
                Logger.LogExceptionToFile(new Exception(apiJson),"BuildAPIPopulate");
                throw;
            }
        }