コード例 #1
0
 public CameraProperty(string id,
                       string name,
                       string urlPath,
                       string xpath,
                       [AllowNull] ImmutableSortedSet <string> stringValues)
 {
     Id           = id;
     Name         = name;
     XPathForGet  = new XmlPathData(xpath);
     UrlPath      = urlPath;
     StringValues = stringValues ?? ImmutableSortedSet <string> .Empty;
 }
コード例 #2
0
        private void HandleCameraPropertyPostBack(NameValueCollection parts, string form)
        {
            if (form == NameToIdWithPrefix(HikDeleteCameraProperty))
            {
                pluginConfig.RemoveHikvisionIsapiCameraProperty(parts[RecordId]);
                pluginConfig.FireConfigChanged();
                divToUpdate.Add(SaveErrorDivId, RedirectPageJS(Invariant($"/{pageUrl}?{TabId}=2")));
            }
            else if (form == NameToIdWithPrefix(HikCancelCameraProperty))
            {
                divToUpdate.Add(SaveErrorDivId, RedirectPageJS(Invariant($"/{pageUrl}?{TabId}=2")));
            }
            else if (form == NameToIdWithPrefix(HikSaveCameraProperty))
            {
                StringBuilder results            = new StringBuilder();
                string        cameraPropertyName = parts[nameof(CameraProperty.Name)];
                if (string.IsNullOrWhiteSpace(cameraPropertyName))
                {
                    results.AppendLine("Name is empty.<br>");
                }

                string cameraPropertyUrlPath = parts[nameof(CameraProperty.UrlPath)];
                if (string.IsNullOrWhiteSpace(cameraPropertyUrlPath))
                {
                    results.AppendLine("UrlPath is empty.<br>");
                }

                string cameraPropertyXPath = parts[nameof(CameraProperty.XPathForGet)];
                if (string.IsNullOrWhiteSpace(cameraPropertyXPath))
                {
                    results.AppendLine("Xpath is empty.<br>");
                }

                try
                {
                    XmlPathData xPath = new XmlPathData(cameraPropertyXPath);
#pragma warning disable S1481 // Unused local variables should be removed
                    var _ = xPath.Path;
#pragma warning restore S1481 // Unused local variables should be removed
                }
                catch (Exception)
                {
                    results.AppendLine("XPath is not valid.<br>");
                }

                string stringValues = parts[nameof(CameraProperty.StringValues)];

                if (results.Length > 0)
                {
                    divToUpdate.Add(SaveErrorDivId, results.ToString());
                }
                else
                {
                    string id = parts[RecordId];

                    if (string.IsNullOrWhiteSpace(id))
                    {
                        id = System.Guid.NewGuid().ToString();
                    }

                    var data = new CameraProperty(id,
                                                  cameraPropertyName,
                                                  cameraPropertyUrlPath,
                                                  cameraPropertyXPath,
                                                  stringValues.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToImmutableSortedSet());

                    pluginConfig.AddHikvisionIsapiCameraProperty(data);
                    pluginConfig.FireConfigChanged();
                    divToUpdate.Add(SaveErrorDivId, RedirectPageJS(Invariant($"/{pageUrl}?{TabId}=2")));
                }
            }
        }