public void GenerateTechnologyCharacterProperty(ref TechnologyCharacterViewModel technologyCharacterViewModel, ushort userHashValue, UserViewModel userViewModel)
 {
     if (userHashValue >= RequiredThreshold)
     {
         technologyCharacterViewModel.CharacterTraits.Add(CharacterTrait);
     }
 }
Esempio n. 2
0
        public void GenerateTechnologyCharacterProperty(ref TechnologyCharacterViewModel technologyCharacterViewModel, ushort userHashValue,
                                                        UserViewModel userViewModel)
        {
            var characterName = userViewModel?.Name?.Split(' ')?.FirstOrDefault();

            var suffix = _characterNameSuffixes[userHashValue];

            technologyCharacterViewModel.CharacterName = $"{characterName} the {suffix}";
        }
        public void GenerateTechnologyCharacterProperty(ref TechnologyCharacterViewModel technologyCharacterViewModel,
                                                        ushort userHashValue, UserViewModel userViewModel)
        {
            var value = ConvertHashValueToPropertyValue(userHashValue);

            if (PropertyExpression.Body is MemberExpression memberSelectorExpression)
            {
                var property = memberSelectorExpression.Member as PropertyInfo;
                if (property != null)
                {
                    property.SetValue(technologyCharacterViewModel, value, null);
                }
            }
        }
Esempio n. 4
0
        public TechnologyCharacterViewModel GenerateTechnologyCharacter(UserViewModel userViewModel)
        {
            var user = JsonConvert.SerializeObject(userViewModel);

            _logger.LogInformation($"Generating Hash of {user}");

            var userHashArray = CreateUserHashArray(user);

            var technologyCharacter = new TechnologyCharacterViewModel
            {
                CharacterTraits           = new List <string>(),
                TechnologyCharacterAvatar = new TechnologyCharacterAvatarModel(),
                UserHash = string.Join(string.Empty, userHashArray)
            };

            _logger.LogInformation($"Hash = \"{technologyCharacter.UserHash}\" ({string.Join(", ", userHashArray)})");

            foreach (var technologyCharacterPropertyGenerator in _technologyCharacterPropertyGenerator)
            {
                if (userHashArray.Length <= technologyCharacterPropertyGenerator.UserHashIndex)
                {
                    _logger.LogError(
                        $"Index ({technologyCharacterPropertyGenerator.UserHashIndex}) for {technologyCharacterPropertyGenerator.GetType().Name} " +
                        $"is outside of the length of the hash ({userHashArray.Length})");
                    continue;
                }
                ;

                var hashValue = ushort.Parse(userHashArray[technologyCharacterPropertyGenerator.UserHashIndex], NumberStyles.HexNumber);

                _logger.LogInformation($"Value for the HashArray at ({technologyCharacterPropertyGenerator.UserHashIndex}) " +
                                       $"is ({userHashArray[technologyCharacterPropertyGenerator.UserHashIndex]}) or ({hashValue})");

                technologyCharacterPropertyGenerator.GenerateTechnologyCharacterProperty(ref technologyCharacter,
                                                                                         hashValue, userViewModel);
            }

            return(technologyCharacter);
        }
Esempio n. 5
0
 public void GenerateTechnologyCharacterProperty(ref TechnologyCharacterViewModel technologyCharacterViewModel,
                                                 ushort userHashValue, UserViewModel userViewModel)
 {
     technologyCharacterViewModel.TechnologyCharacterAvatar.AccentColor =
         $"#{technologyCharacterViewModel.UserHash.Substring(25, 6)}";
 }
 public void GenerateTechnologyCharacterProperty(ref TechnologyCharacterViewModel technologyCharacterViewModel,
                                                 ushort userHashValue, UserViewModel userViewModel)
 {
     technologyCharacterViewModel.TechnologyCharacterAvatar.HairColor = HairColors[userHashValue];
 }