mirror of
https://github.com/ncblakely/GiantsTools
synced 2024-11-23 14:45:37 +01:00
36 lines
1.0 KiB
C#
36 lines
1.0 KiB
C#
namespace Giants.Services
|
|
{
|
|
using System;
|
|
|
|
public class ServerInfo : DataContract.V1.ServerInfo, IIdentifiable
|
|
{
|
|
public string id => $"{this.HostIpAddress}-{this.GameName}-{this.Port}";
|
|
|
|
public string DocumentType => nameof(ServerInfo);
|
|
|
|
public string HostIpAddress { get; set; }
|
|
|
|
public DateTime LastHeartbeat { get; set; }
|
|
|
|
public override bool Equals(object obj)
|
|
{
|
|
return obj is ServerInfo info &&
|
|
base.Equals(obj) &&
|
|
this.HostIpAddress == info.HostIpAddress &&
|
|
this.Port == info.Port &&
|
|
this.GameName == info.GameName &&
|
|
this.DocumentType == info.DocumentType;
|
|
}
|
|
|
|
public override int GetHashCode()
|
|
{
|
|
HashCode hash = new HashCode();
|
|
hash.Add(base.GetHashCode());
|
|
hash.Add(this.id);
|
|
hash.Add(this.HostIpAddress);
|
|
hash.Add(this.DocumentType);
|
|
return hash.ToHashCode();
|
|
}
|
|
}
|
|
}
|