@using Newtonsoft.Json.Linq @using Rms.Risk.Mango.Components.JForms @inherits CmdBase @attribute [MongoCommand(CmdType.Read, "List databases", "Informational")] @if (Parameters != null) @* * dbMango * * Copyright 2025 Deutsche Bank AG * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ {
} @code { private readonly TemplateRec _template = new() { Parameters = [ ] }; protected override string CommandTemplate => @"{ ""listDatabases"" : 1 }"; private class ResultItem { public string Name { get; set; } = string.Empty; public long Size { get; set; } public bool IsEmpty { get; set; } } protected override void OnAfterRender(bool firstRender) { if (!firstRender) return; if (Parameters != null) { Parameters.RequiredConnectionType = CommandParams.DatabaseConnectionType.Admin; Parameters.NeedConfirmation = false; } } private IReadOnlyCollection GetParsedResult() { var list = new List(); if (Result == null) return list; var res = JsonUtils.FromJson(Result); if (res == null) return list; var databases = res["databases"]?.Value(); if (databases == null) return list; foreach (var doc in databases) { var name = doc["name"]?.Value() ?? "???"; var size = doc["sizeOnDisk"]?.Value() ?? 0L; var isEmpty = doc["empty"]?.Value() ?? true; list.Add(new() { Name = name, Size = size, IsEmpty = isEmpty }); } return list; } }