예제 #1
0
        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)));
                    }
                });
        }
예제 #2
0
        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));
        }
예제 #3
0
        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();
        }