Beispiel #1
0
        public override ValidationResult Validate(object value, CultureInfo cultureInfo)
        {
            Character character = (value as BindingGroup).Items[0] as Character;

            if (character.Name == null || character.Name.Length == 0)
            {
                return(new ValidationResult(false, "The name value can't be empty"));
            }
            if (character.Name != null && character.Name.Length > 50)
            {
                return(new ValidationResult(false, "Character name is too long. Length should be smaller than 50 characters"));
            }
            if (character.Description != null && character.Description.Length > 50)
            {
                return(new ValidationResult(false, "Character description is too long. Length should be smaller than 50 characters"));
            }

            if (character.OccurencesNumber < 0)
            {
                return(new ValidationResult(false, "Value of occurence number shall be greater or equal 0"));
            }

            AkinatorDatabaseEntities tempContext = new AkinatorDatabaseEntities();

            if (tempContext.Characters.Count(s => (s.Name == character.Name) && (s.Id != character.Id)) > 0)
            {
                return(new ValidationResult(false, "Character names have to be unique"));
            }

            return(ValidationResult.ValidResult);
        }
Beispiel #2
0
        public override ValidationResult Validate(object value, CultureInfo cultureInfo)
        {
            Question question = (value as BindingGroup).Items[0] as Question;

            if (question.Name == null || question.Name.Length == 0)
            {
                return(new ValidationResult(false, "The name value can't be empty"));
            }
            if (question.Name != null && question.Name.Length > 50)
            {
                return(new ValidationResult(false, "Question name is too long. Length should be smaller than 50 characters"));
            }
            if (question.GeneralizationDegree < 0 || question.GeneralizationDegree > 100)
            {
                return(new ValidationResult(false, "Value of generalization should be in range (0, 100)"));
            }

            AkinatorDatabaseEntities tempContext = new AkinatorDatabaseEntities();

            if (tempContext.Questions.Count(s => (s.Name == question.Name) && (s.Id != question.Id)) > 0)
            {
                return(new ValidationResult(false, "Question names have to be unique"));
            }

            return(ValidationResult.ValidResult);
        }
Beispiel #3
0
        public override ValidationResult Validate(object value, CultureInfo cultureInfo)
        {
            QuestionCathegory cathegory = (value as BindingGroup).Items[0] as QuestionCathegory;

            if (cathegory.Name == null || cathegory.Name.Length == 0)
            {
                return(new ValidationResult(false, "The name value can't be empty"));
            }
            if (cathegory.Name != null && cathegory.Name.Length > 50)
            {
                return(new ValidationResult(false, "Cathegory name is too long. Length should be smaller than 50 characters"));
            }
            if (cathegory.ParentCathegory != null && cathegory.ParentCathegory.ToString() == cathegory.Id.ToString())
            {
                return(new ValidationResult(false, "Cathegory can not be 'parent cathegory' for its self"));
            }

            AkinatorDatabaseEntities tempContext = new AkinatorDatabaseEntities();

            if (tempContext.QuestionCathegories.Count(s => (s.Name == cathegory.Name) && (s.Id != cathegory.Id)) > 0)
            {
                return(new ValidationResult(false, "Cathegory names have to be unique"));
            }

            return(ValidationResult.ValidResult);
        }
Beispiel #4
0
        public MainWindow()
        {
            InitializeComponent();

            dbContextQuestionCathegory           = new AkinatorDatabaseEntities();
            dbContextCharacter                   = new AkinatorDatabaseEntities();
            dbContextQuestion                    = new AkinatorDatabaseEntities();
            dbContextQuestionCorelation          = new AkinatorDatabaseEntities();
            dbContextQuestionCharacterConnection = new AkinatorDatabaseEntities();
        }
Beispiel #5
0
        public override ValidationResult Validate(object value, CultureInfo cultureInfo)
        {
            QuestionCorelation qCor = (value as BindingGroup).Items[0] as QuestionCorelation;


            if (qCor.QuestionA == 0)
            {
                return(new ValidationResult(false, "You have to choose one question A option"));
            }

            if (qCor.QuestionB == 0)
            {
                return(new ValidationResult(false, "You have to choose one question B option"));
            }

            if (qCor.CommonCases < 0)
            {
                return(new ValidationResult(false, "Common case value shall be greater or equal 0"));
            }

            if ((qCor.CorelationPower < 0) || (qCor.CorelationPower > 100))
            {
                return(new ValidationResult(false, "Corelation power value shall be in range (0, 100)"));
            }

            if ((qCor.CorelationDirection < -100) || (qCor.CorelationDirection > 100))
            {
                return(new ValidationResult(false, "Corelation direction power value shall be in range (-100, 100)"));
            }

            if (qCor.QuestionA == qCor.QuestionB)
            {
                return(new ValidationResult(false, "Questions A and B cannot be the same"));
            }

            AkinatorDatabaseEntities tempContext = new AkinatorDatabaseEntities();

            if (tempContext.QuestionCorelations
                .Count(s => (((s.QuestionA == qCor.QuestionA) && (s.QuestionB == qCor.QuestionB) && (s.Id != qCor.Id)) ||
                             ((s.QuestionA == qCor.QuestionB) && (s.QuestionB == qCor.QuestionA) && (s.Id != qCor.Id)))) > 0)
            {
                return(new ValidationResult(false, "Question corelations have to be unique"));
            }

            return(ValidationResult.ValidResult);
        }
Beispiel #6
0
        private void QuestionRowUpdate(object sender, DataGridRowEditEndingEventArgs e)
        {
            if (QuestionDataGrid.SelectedItem != null)
            {
                QuestionDataGrid.RowEditEnding -= QuestionRowUpdate;
                QuestionDataGrid.CommitEdit();
                QuestionDataGrid.RowEditEnding += QuestionRowUpdate;
            }
            else
            {
                return;
            }

            var result = new QuestionValidation().Validate(e.Row.BindingGroup, CultureInfo.CurrentCulture);

            if (!result.IsValid)
            {
                QuestionsSearchBox.IsEnabled = false;
                return;
            }

            QuestionsSearchBox.IsEnabled = true;

            dbContextQuestion.SaveChanges();

            dbContextQuestionCorelation = new AkinatorDatabaseEntities();
            dbContextQuestionCorelation.Questions.Load();
            dbContextQuestionCorelation.QuestionCorelations.Load();
            _questionsListRemote.Source          = dbContextQuestionCorelation.Questions.Local;
            _questionCorelationViewSource.Source = dbContextQuestionCorelation.QuestionCorelations.Local;
            QuestionCorelationDataGrid.Items.Refresh();

            dbContextQuestionCharacterConnection = new AkinatorDatabaseEntities();
            dbContextQuestionCharacterConnection.Questions.Load();
            dbContextQuestionCharacterConnection.QuestionCharacterConnections.Load();
            _conQuestionsListRemote.Source = dbContextQuestionCharacterConnection.Questions.Local;
            _questionCharacterConnectionViewSource.Source =
                dbContextQuestionCharacterConnection.QuestionCharacterConnections.Local;
            QuestionCharacterConnectionDataGrid.Items.Refresh();

            QuestionDataGrid.Items.Refresh();

            questionFlag = false;
        }
Beispiel #7
0
        public override ValidationResult Validate(object value, CultureInfo cultureInfo)
        {
            QuestionCharacterConnection cQCCon = (value as BindingGroup).Items[0] as QuestionCharacterConnection;

            if (cQCCon.Character == 0)
            {
                return(new ValidationResult(false, "You have to choose one character option"));
            }

            if (cQCCon.Question == 0)
            {
                return(new ValidationResult(false, "You have to choose one question option"));
            }


            if (cQCCon.OccurencesNumber < 0)
            {
                return(new ValidationResult(false, "Occurence number value shall be greater or equal 0"));
            }

            if (cQCCon.YesAnswers < 0)
            {
                return(new ValidationResult(false, "Yes answers value shall be greater or equal 0"));
            }

            if (cQCCon.ProbablyYesAnswers < 0)
            {
                return(new ValidationResult(false, "Probably yes value shall be greater or equal 0"));
            }

            if (cQCCon.DontKnowAnswers < 0)
            {
                return(new ValidationResult(false, "Don't know value shall be greater or equal 0"));
            }

            if (cQCCon.ProbablyNotAnswers < 0)
            {
                return(new ValidationResult(false, "Probably not value shall be greater or equal 0"));
            }

            if (cQCCon.NotAnswers < 0)
            {
                return(new ValidationResult(false, "Not answers value shall be greater or equal 0"));
            }

            if ((cQCCon.ProbabilisticEvaluation < 0.0) || (cQCCon.ProbabilisticEvaluation > 1.0))
            {
                return(new ValidationResult(false, "Probabilisic evaluation value shall be in range (0.0, 1.0)"));
            }

            AkinatorDatabaseEntities tempContext = new AkinatorDatabaseEntities();

            if (tempContext.QuestionCharacterConnections
                .Count(s => ((s.Character == cQCCon.Character) && (s.Id != cQCCon.Id) && (s.Question == cQCCon.Question))) > 0)
            {
                return(new ValidationResult(false, "Character Question connection have to be unique"));
            }


            return(ValidationResult.ValidResult);
        }
Beispiel #8
0
        private void Selector_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if ((!(e.Source is TabControl)) || e.RemovedItems.Count == 0 || e.AddedItems.Count == 0)
            {
                //                QuestionDataGrid.
                return;
            }

            if (QuestionsTab.IsSelected)
            {
                if (!questionCathegoryFlag)
                {
                    dbContextQuestionCathegory.SaveChanges();

                    dbContextQuestion = new AkinatorDatabaseEntities();
                    dbContextQuestion.QuestionCathegories.Load();
                    dbContextQuestion.Questions.Load();
                    _questionCathegoriesListRemote.Source = dbContextQuestion.QuestionCathegories.Local;
                    _questionViewSource.Source            = dbContextQuestion.Questions.Local;
                    QuestionDataGrid.Items.Refresh();
                }
            }
            else if (QuestionCorelationsTab.IsSelected)
            {
                if (!characterFlag)
                {
                    dbContextCharacter.SaveChanges();

                    dbContextQuestionCorelation = new AkinatorDatabaseEntities();
                    dbContextQuestionCorelation.Questions.Load();
                    dbContextQuestionCorelation.QuestionCorelations.Load();
                    _questionsListRemote.Source          = dbContextQuestionCorelation.Questions.Local;
                    _questionCorelationViewSource.Source = dbContextQuestionCorelation.QuestionCorelations.Local;
                    QuestionCorelationDataGrid.Items.Refresh();
                }
            }
            else if (QuestionCharacterConnectionTab.IsSelected)
            {
                if (!questionFlag)
                {
                    dbContextQuestion.SaveChanges();

                    dbContextQuestionCharacterConnection = new AkinatorDatabaseEntities();
                    dbContextQuestionCharacterConnection.Questions.Load();
                    dbContextQuestionCharacterConnection.QuestionCharacterConnections.Load();
                    _conQuestionsListRemote.Source = dbContextQuestionCharacterConnection.Questions.Local;
                    _questionCharacterConnectionViewSource.Source =
                        dbContextQuestionCharacterConnection.QuestionCharacterConnections.Local;
                    QuestionCharacterConnectionDataGrid.Items.Refresh();
                }

                if (!characterFlag)
                {
                    dbContextCharacter.SaveChanges();

                    dbContextQuestionCharacterConnection = new AkinatorDatabaseEntities();
                    dbContextQuestionCharacterConnection.Characters.Load();
                    dbContextQuestionCharacterConnection.QuestionCharacterConnections.Load();
                    _conCharactersListRemote.Source = dbContextQuestionCharacterConnection.Characters.Local;
                    _questionCharacterConnectionViewSource.Source =
                        dbContextQuestionCharacterConnection.QuestionCharacterConnections.Local;
                    QuestionCharacterConnectionDataGrid.Items.Refresh();
                }
            }
        }