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; }
//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; } }