Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }