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; }
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"))); } } }