Пример #1
0
        private void btnCharacterSave_Click(object sender, EventArgs e)
        {
            try
            {
                ResetErrorStatus();

                Attributes attr = new Attributes();
                attr.Agility      = txtAgility.Text;
                attr.Charisma     = txtCharisma.Text;
                attr.Constitution = txtConstitution.Text;
                attr.Intelligence = txtIntelligent.Text;
                attr.Strength     = txtStrength.Text;



                ValidationContext        context1 = new ValidationContext(attr, null, null);
                IList <ValidationResult> errors1  = new List <ValidationResult>();
                Validator.TryValidateObject(attr, context1, errors1, true);

                Character newCharacter = CharacterService.CreateCharacter(txtCharacterName.Text, cbProfession?.SelectedItem?.ToString(), cbRace?.SelectedItem?.ToString(), attr, txtDescription.Text);


                ValidationContext        context = new ValidationContext(newCharacter, null, null);
                IList <ValidationResult> errors  = new List <ValidationResult>();
                Validator.TryValidateObject(newCharacter, context, errors, true);
                var errorCombined = errors.Concat(errors1);
                if (errorCombined.Any())
                {
                    foreach (ValidationResult result in errorCombined)
                    {
                        if (result.MemberNames.Contains("Name"))
                        {
                            errCharacterNew.SetError(txtCharacterName, result.ErrorMessage);
                        }
                        if (result.MemberNames.Contains("Profession"))
                        {
                            errCharacterNew.SetError(cbProfession, result.ErrorMessage);
                        }
                        if (result.MemberNames.Contains("Race"))
                        {
                            errCharacterNew.SetError(cbRace, result.ErrorMessage);
                        }
                        if (result.MemberNames.Contains("Strength"))
                        {
                            errCharacterNew.SetError(txtStrength, result.ErrorMessage);
                        }
                        if (result.MemberNames.Contains("Agility"))
                        {
                            errCharacterNew.SetError(txtAgility, result.ErrorMessage);
                        }
                        if (result.MemberNames.Contains("Charisma"))
                        {
                            errCharacterNew.SetError(txtCharisma, result.ErrorMessage);
                        }
                        if (result.MemberNames.Contains("Constitution"))
                        {
                            errCharacterNew.SetError(txtConstitution, result.ErrorMessage);
                        }
                        if (result.MemberNames.Contains("Intelligence"))
                        {
                            errCharacterNew.SetError(txtIntelligent, result.ErrorMessage);
                        }
                    }
                }
                else
                {
                    CharacterService.AddtoListCharacter(newCharacter);
                    this.Close();
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }