using System; using System.Globalization; using Umbraco.Core.Models.Entities; namespace Umbraco.Core.Models { /// /// Represents a registered server in a multiple-servers environment. /// public class ServerRegistration : EntityBase, IServerRegistration { private string _serverAddress; private string _serverIdentity; private bool _isActive; private bool _isMaster; /// /// Initializes a new instance of the class. /// public ServerRegistration() { } /// /// Initializes a new instance of the class. /// /// The unique id of the server registration. /// The server URL. /// The unique server identity. /// The date and time the registration was created. /// The date and time the registration was last accessed. /// A value indicating whether the registration is active. /// A value indicating whether the registration is master. public ServerRegistration(int id, string serverAddress, string serverIdentity, DateTime registered, DateTime accessed, bool isActive, bool isMaster) { UpdateDate = accessed; CreateDate = registered; Key = id.ToString(CultureInfo.InvariantCulture).EncodeAsGuid(); Id = id; ServerAddress = serverAddress; ServerIdentity = serverIdentity; IsActive = isActive; IsMaster = isMaster; } /// /// Initializes a new instance of the class. /// /// The server URL. /// The unique server identity. /// The date and time the registration was created. public ServerRegistration(string serverAddress, string serverIdentity, DateTime registered) { CreateDate = registered; UpdateDate = registered; Key = 0.ToString(CultureInfo.InvariantCulture).EncodeAsGuid(); ServerAddress = serverAddress; ServerIdentity = serverIdentity; } /// /// Gets or sets the server URL. /// public string ServerAddress { get => _serverAddress; set => SetPropertyValueAndDetectChanges(value, ref _serverAddress, nameof(ServerAddress)); } /// /// Gets or sets the server unique identity. /// public string ServerIdentity { get => _serverIdentity; set => SetPropertyValueAndDetectChanges(value, ref _serverIdentity, nameof(ServerIdentity)); } /// /// Gets or sets a value indicating whether the server is active. /// public bool IsActive { get => _isActive; set => SetPropertyValueAndDetectChanges(value, ref _isActive, nameof(IsActive)); } /// /// Gets or sets a value indicating whether the server is master. /// public bool IsMaster { get => _isMaster; set => SetPropertyValueAndDetectChanges(value, ref _isMaster, nameof(IsMaster)); } /// /// Gets the date and time the registration was created. /// public DateTime Registered { get => CreateDate; set => CreateDate = value; } /// /// Gets the date and time the registration was last accessed. /// public DateTime Accessed { get => UpdateDate; set => UpdateDate = value; } /// /// Converts the value of this instance to its equivalent string representation. /// /// public override string ToString() { return string.Format("{{\"{0}\", \"{1}\", {2}active, {3}master}}", ServerAddress, ServerIdentity, IsActive ? "" : "!", IsMaster ? "" : "!"); } } }