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); }
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); }
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); }
public MainWindow() { InitializeComponent(); dbContextQuestionCathegory = new AkinatorDatabaseEntities(); dbContextCharacter = new AkinatorDatabaseEntities(); dbContextQuestion = new AkinatorDatabaseEntities(); dbContextQuestionCorelation = new AkinatorDatabaseEntities(); dbContextQuestionCharacterConnection = new AkinatorDatabaseEntities(); }
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); }
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; }
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); }
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(); } } }