Guiorgy_MqttSql/ServiceConfiguration.cs
/*
    This file is part of MqttSql (Copyright © 2024  Guiorgy).
    MqttSql is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
    MqttSql is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
    You should have received a copy of the GNU Affero General Public License along with MqttSql. If not, see <https://www.gnu.org/licenses/>.
*/

using System;

namespace MqttSql
{
    public class ServiceConfiguration
    {
        public string Host { get; set; }
        public int Port { get; set; }
        public string User { get; set; }
        public string Password { get; set; }
        public string Topic { get; set; }
        public string Table { get; set; }

        public override string ToString()
        {
            return
                $"{'{'}{Environment.NewLine}" +
                $"\tHost:{Host}{Environment.NewLine}" +
                $"\tPort:{Port}{Environment.NewLine}" +
                $"\tUser:{User}{Environment.NewLine}" +
                $"\tPassword:{Password}{Environment.NewLine}" +
                $"\tTopic:{Topic}{Environment.NewLine}" +
                $"\tTable:{Table}{Environment.NewLine}" +
                $"{'}'}{Environment.NewLine}";
        }

        public string ToSafeString()
        {
            return
                $"{'{'}{Environment.NewLine}" +
                $"\tHost:{Host}{Environment.NewLine}" +
                $"\tPort:{Port}{Environment.NewLine}" +
                $"\tUser:{User}{Environment.NewLine}" +
                $"\tPassword:{new string('*', Password.Length)}{Environment.NewLine}" +
                $"\tTopic:{Topic}{Environment.NewLine}" +
                $"\tTable:{Table}{Environment.NewLine}" +
                $"{'}'}{Environment.NewLine}";
        }
    }
}
