Beispiel #1
0
        protected async Task DetermineOrCreateRelation(Transaction transaction, ImportResults results, string description)
        {
            if (transaction.Relation == null && !string.IsNullOrWhiteSpace(transaction.AccountNumberFrom))
            {
                transaction.Relation = await _relationRepository.FindRelationByAccountNumber(transaction.AccountNumberFrom);
            }
            if (transaction.Relation == null && !string.IsNullOrWhiteSpace(description))
            {
                transaction.Relation = await _relationRepository.FindRelationByDescription(description);
            }
            if (transaction.Relation == null)
            {
                Relation relation = new Relation();
                if (string.IsNullOrWhiteSpace(description))
                {
                    description = "Geen omschrijving";
                }
                relation.Name = description;
                relation.Descriptions.Add(new RelationDescription()
                {
                    Description = description,
                    UserId      = ServiceResolver.GetService <IUserProvider>().GetUserId()
                });
                if (!string.IsNullOrWhiteSpace(transaction.AccountNumberFrom))
                {
                    relation.AccountNumbers.Add(new RelationAccountNumber()
                    {
                        AccountNumber = transaction.AccountNumberTo,
                        UserId        = ServiceResolver.GetService <IUserProvider>().GetUserId()
                    });
                }
                await _categoryRepository.FindCategoriesForRelation(transaction, relation);

                transaction.Relation = await _relationRepository.AddAsync(relation);

                transaction.Relation = await _relationRepository.GetItemByIdAsync(relation.ID);

                if (transaction.Relation.CategoryLinks.Where(b => b.Category != null).Count() == 0)
                {
                    results.ImportedRelations.Insert(0, transaction.Relation);
                }
                else
                {
                    results.ImportedRelations.Add(transaction.Relation);
                }
            }
        }