private void DoApplyRules() { var classifier = new OperationsClassifier( _context.GetRepository<IRepository<ClassificationDefinition>>(), _context.GetRepository<IRepository<BankAccount>>()); _messageBoxService.ShowMessageBox( "Uwaga", "Czy klasyfikować również te które już mają przypisane kategorie?", MessageBoxButton.YesNo, result => { if (result == MessageBoxResult.Yes) { DoApplyRulesToPickedOperations( classifier, Data.OfType<BankOperation>()); } else { DoApplyRulesToPickedOperations( classifier, Data.OfType<BankOperation>().Where(a => string.IsNullOrEmpty(a.Category) && string.IsNullOrEmpty(a.SubCategory))); } }); }
private void DoApplyRulesToPickedOperations(OperationsClassifier classifier, IEnumerable<BankOperation> operations) { var classificationResult = classifier.ClasifyOpearations(operations); _resolveConflicts.ResolveConflicts(classificationResult); var assigned = classifier.ApplyClassificationResult(classificationResult); var unassigned = classificationResult.Count() - assigned; _messageBoxService.ShowMessageBox( "Info", string.Format( Resources.Translations.OperationsClassificationConfirmation, assigned, Environment.NewLine, unassigned)); }
public void LoadFromFile() { List<BankOperation> overallLoadedOperations = new List<BankOperation>(); using (OpenFileResult openFileResult = new FileDialogService() .OpenFile(ChosenParser.SupportedFileExtensions, true)) { if(openFileResult.OpenedFiles.Count()==0) { return; } foreach (var openedFile in openFileResult.OpenedFiles) { var loadedOperations = _importer.ImportOperations( openedFile.FileName, ChosenParser.Parse(openedFile.Stream)); overallLoadedOperations.AddRange(loadedOperations); } } if (ApplyRules) { var classifier = new OperationsClassifier( _context.GetRepository<IRepository<ClassificationDefinition>>(), _context.GetRepository<IRepository<BankAccount>>()); var classificationResult = classifier.ClasifyOpearations(overallLoadedOperations); _resolveConflicts.ResolveConflicts(classificationResult); var assigned = classifier.ApplyClassificationResult(classificationResult); var unassigned = classificationResult.Count() - assigned; string conent = string.Format( Resources.Translations.OperationsClassificationResultTextTemplate, assigned, Environment.NewLine, unassigned); _messageBoxService.ShowMessageBox("Info", conent); } _context.SaveChanges(); ResetListData(); }