sourcegit/src/Models/User.cs

40 lines
1.2 KiB
C#
Raw Normal View History

using System.Collections.Generic;
2020-07-03 00:24:31 -07:00
2021-04-29 05:05:55 -07:00
namespace SourceGit.Models {
2020-07-03 00:24:31 -07:00
/// <summary>
2021-04-29 05:05:55 -07:00
/// Git用户
2020-07-03 00:24:31 -07:00
/// </summary>
public class User {
public static User Invalid = new User();
public static Dictionary<string, User> Caches = new Dictionary<string, User>();
2020-07-03 00:24:31 -07:00
public string Name { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
2020-07-03 00:24:31 -07:00
public override bool Equals(object obj) {
if (obj == null || !(obj is User)) return false;
var other = obj as User;
return Name == other.Name && Email == other.Email;
}
2020-07-03 00:24:31 -07:00
public override int GetHashCode() {
return base.GetHashCode();
}
2020-07-03 00:24:31 -07:00
public static User FindOrAdd(string data) {
if (Caches.ContainsKey(data)) {
return Caches[data];
} else {
var nameEndIdx = data.IndexOf('<');
var name = nameEndIdx >= 2 ? data.Substring(0, nameEndIdx - 1) : string.Empty;
var email = data.Substring(nameEndIdx + 1);
User user = new User() { Name = name, Email = email };
Caches.Add(data, user);
return user;
}
2020-07-03 00:24:31 -07:00
}
}
}