public static HostsUpdateResult Added(HostsEntry entry) { return(new HostsUpdateResult(entry.HostName) { Status = HostsUpdateResultType.Added, NewAddress = entry.Address, OldAddress = IPAddress.None }); }
public static HostsUpdateResult Updated(HostsEntry entry, IPAddress newAddress) { return(new HostsUpdateResult(entry.HostName) { Status = HostsUpdateResultType.Updated, NewAddress = newAddress, OldAddress = entry.Address }); }
public static HostsUpdateResult NoChange(HostsEntry entry) { return(new HostsUpdateResult(entry.HostName) { Status = HostsUpdateResultType.Unchanged, NewAddress = entry.Address, OldAddress = entry.Address }); }
public HostsUpdateResult Upsert(IPAddress address, string hostName, string comment = null) { Guard.IsNotNullOrWhiteSpace(hostName, nameof(hostName)); var existing = InternalEntries.SingleOrDefault(entry => entry.HostName == hostName); if (existing != null) { if (existing.Address.Equals(address)) { return(HostsUpdateResult.NoChange(existing)); } InternalEntries.Remove(existing); InternalEntries.Add(new HostsEntry(address, hostName, comment)); HasUnsavedChanges = true; return(HostsUpdateResult.Updated(existing, address)); } var addedEntry = new HostsEntry(address, hostName, comment); InternalEntries.Add(addedEntry); HasUnsavedChanges = true; return(HostsUpdateResult.Added(addedEntry)); }