コード例 #1
0
        public void CalculateBalanceOfAllAccountsAndUpdateThem(string userId, FinancialOperation finOperation = null)
        {
            var bankAccountList = _unitOfWork.BankAccountRepo.GetWhereWithIncludes(x => x.Id > 0 && x.UserId == userId).ToList();

            foreach (var bankAccount in bankAccountList)
            {
                var sumOfExpenses = _unitOfWork.FinancialOperatiosRepo.
                                    GetWhere(financialOperation => financialOperation.BankAccountId == bankAccount.Id && financialOperation.UserId == userId)
                                    .Sum(e => e.AmountOfMoney);
                if (finOperation?.BankAccount?.Id == bankAccount.Id)
                {
                    sumOfExpenses += finOperation.AmountOfMoney;
                }
                var sumOfIncomes = _unitOfWork.FinancialOperatiosRepo
                                   .GetWhere(financialOperation => financialOperation.TargetBankAccountId == bankAccount.Id && financialOperation.UserId == userId)
                                   .Sum(e => e.AmountOfMoney);
                if (finOperation?.TargetBankAccount?.Id == bankAccount.Id)
                {
                    sumOfIncomes += finOperation.AmountOfMoney;
                }

                bankAccount.Balance = bankAccount.InitialBalance - sumOfExpenses + sumOfIncomes;
                _unitOfWork.BankAccountRepo.Update(bankAccount);
            }
        }
コード例 #2
0
ファイル: FinOpMapping.cs プロジェクト: maksymsmola/dev
 public static GeneralFinOperationModel ToGeneralFinOperationModel(this FinancialOperation finOp)
 {
     return(new GeneralFinOperationModel
     {
         Type = finOp.Type,
         Value = finOp.Value,
         Date = finOp.Date,
         Description = finOp.Description,
         CategoryName = finOp.Category?.Name ?? Constants.NO_CATEGORY
     });
 }
コード例 #3
0
ファイル: FinOpMapping.cs プロジェクト: maksymsmola/dev
 public static AddEditFinOperationDto ToAddEditFinOperationDto(this FinancialOperation finOp)
 {
     return(new AddEditFinOperationDto
     {
         Id = finOp.Id,
         Date = finOp.Date,
         Description = finOp.Description,
         CategoryId = finOp.CategoryId,
         Type = finOp.Type,
         Value = finOp.Value,
         Tags = finOp.Tags.Select(tag => tag.ToSimpleTagDto()).ToList()
     });
 }
コード例 #4
0
ファイル: FinOpMapping.cs プロジェクト: maksymsmola/dev
 public static FinOperationListItemDto ToFinOperationListItemDto(this FinancialOperation finOp)
 {
     return(new FinOperationListItemDto
     {
         Id = finOp.Id,
         Date = finOp.Date,
         Description = finOp.Description,
         Type = finOp.Type,
         Value = finOp.Value,
         CategoryName = finOp.Category?.Name,
         Tags = finOp.Tags.Select(tag => tag.ToSimpleTagDto()).ToList()
     });
 }
コード例 #5
0
        public void Add(AddEditFinOperationDto model)
        {
            FinancialOperation finOperation = model.ToFinancialOperation();

            List <Tag> tags = this.ExtractNewTags(model);

            tags.AddRange(this.ExtractExistingTags(model.Tags));

            finOperation.Tags = tags;

            this.repository.AddRange(finOperation.Clone(model.Amount));
            this.repository.SaveChanges();
        }
コード例 #6
0
        public void Create(FinancialOperationCreateDto financialOperationCreateDto)
        {
            FinancialOperation financialOperation = Mapper.Map <FinancialOperation>(financialOperationCreateDto);

            repository.Add(financialOperation);
        }