private UserPatreon GetOrCreateUserPatreon(IPatreonData data) { var patreon = gameData.GetPatreonUser(data.PatreonId); if (patreon != null) { return(patreon); } var now = DateTime.UtcNow; var firstName = data.FullName?.Split(' ')?.FirstOrDefault(); var pledgeAmount = GetPledgeAmount(data); var title = GetTierTitle(data); patreon = new UserPatreon() { Id = Guid.NewGuid(), Email = data.Email, FullName = data.FullName, PatreonId = data.PatreonId, PledgeAmount = pledgeAmount, PledgeTitle = title, Tier = data.Tier, TwitchUserId = data.TwitchUserId, FirstName = firstName, //TwitchUserId = data.TwitchUserId ?? user?.UserId, //UserId = user?.Id, Updated = now, Created = now, }; gameData.Add(patreon); return(patreon); }
private User GetUser(IPatreonData data, out UserPatreon patreon) { patreon = GetOrCreateUserPatreon(data); var user = patreon.UserId == null?TryGetUser(data) : gameData.GetUser(patreon.UserId.GetValueOrDefault()); var now = DateTime.UtcNow; if (patreon.UserId == null) { if (!string.IsNullOrEmpty(data.TwitchUserId)) { patreon.TwitchUserId = data.TwitchUserId; patreon.Updated = now; } if (user != null) { patreon.TwitchUserId = user.UserId; patreon.UserId = user.Id; patreon.Updated = now; } } if (string.IsNullOrEmpty(patreon.FirstName)) { patreon.FirstName = data.FullName?.Split(' ')?.FirstOrDefault(); patreon.Updated = now; } return(user); }